如何使用MS-DOS命令模拟curl?

4
我正在编写一款跨平台应用程序,教人们如何使用命令行。我想向他们展示如何打印出URL的HTML内容。通常,我会使用curl来完成此操作,但是Windows没有安装此程序,我不希望用户必须安装任何额外的程序。
是否有一种方法可以使用内置的MS-DOS命令来模拟curl,例如发送一小段VBScript代码给wscript进行评估?

1
告诉你的Windows用户安装Cygwin ;) - durron597
还有一个 Windows 版本的 wget,它与 curl 有重叠的功能。 - Jeremy J Starcher
可能是重复的问题:Windows批处理文件从URL下载文件 - kichik
2个回答

5
假设已经安装了 .net,您可以将 c# 与批处理文件结合起来创建一个 wget.cmd:

(假设已经安装了 .net,您可以结合 c# 和批处理文件创建 wget.cmd)

/*
@echo off && cls

if '%2'=='' (
  echo usage: %0 url filename
  goto :eof
)

set WinDirNet=%WinDir%\Microsoft.NET\Framework
IF EXIST "%WinDirNet%\v2.0.50727\csc.exe" set csc="%WinDirNet%\v2.0.50727\csc.exe"
IF EXIST "%WinDirNet%\v3.5\csc.exe" set csc="%WinDirNet%\v3.5\csc.exe"
IF EXIST "%WinDirNet%\v4.0.30319\csc.exe" set csc="%WinDirNet%\v4.0.30319\csc.exe"
%csc% /nologo /out:"%~0.exe" %0
"%~0.exe" "%1" "%2"
del "%~0.exe"
goto :eof
*/

using System;
using System.Net;
using System.IO;

class MyWget
{
    static void Main(string[] args)
    {
        WebClient wc = new WebClient();
        wc.DownloadFile(args[0],args[1]);
    }
}

1
我想避免使用'cls',但我还没有找到方法。如果你试着玩一下,你会发现'cls'隐藏了一个丑陋但无害的错误信息:'/*'不被识别为内部或外部命令 - Core

0

我不希望我的用户需要安装任何额外的程序。 - mcandre
那么这就是你问题的答案了。我只是认为复制curl并不等于安装,而PowerShell是现代Windows Shell,鼓励用户使用它来代替cmd。 :) - Anton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接