我正在编写一个跨平台应用程序,教人们如何使用命令行。我想向他们展示如何打印出 URL 的 HTML 内容。通常,我会使用curl
它,但 Windows 不附带此程序,我不希望我的用户必须安装任何额外的程序。
有没有办法使用内置的 MS-DOS 命令模拟 curl,也许发送一段 VBScriptwscript
进行评估?
我正在编写一个跨平台应用程序,教人们如何使用命令行。我想向他们展示如何打印出 URL 的 HTML 内容。通常,我会使用curl
它,但 Windows 不附带此程序,我不希望我的用户必须安装任何额外的程序。
有没有办法使用内置的 MS-DOS 命令模拟 curl,也许发送一段 VBScriptwscript
进行评估?
假设已安装 .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]);
}
}
用户在 Windows 上至少有两种可能性:
1)下载 curl-for-windows 构建(在http://curl.haxx.se/download.html上搜索),其中一些作为单个 curl.exe 文件(或者可能带有一些 ssl dll),所以这样做不需要安装,你可以直接复制到 system32 或者添加到 PATH
2)安装powershell并使用相应的.net对象来做这件事: http ://answers.oreilly.com/topic/2006-how-to-download-a-file-from-the-internet-with-windows-powershell /