2016-04-24 850 views
0

我想要一些在命令提示窗口(Windows CMD)上获取在线内容的方式。通过CMD下载网页内容

想象一下,某些内容可以在线存储在托管服务或托管服务提供给您的MySql数据库中。它可以是以任何形式存储的任何数据。我只想在世界任何地方的CMD窗口的帮助下远程查看它。我应该使用什么命令?

为了使其更清楚,我们只需说你有一天的时间来准备考试。而不是准备它,你正在制定一个计划作弊。

现在您的考试将在已分配给您的计算机上进行,并且您不允许在PC上使用浏览器或下载任何新应用程序。但是你可以使用命令提示符,所以你的任务是一个骗子是把答案放在网上的地方。你不能安装任何新东西。

如果您被困在上述场景中,您将如何处理?

P.S这仅限教育用途。我没有这样的考试。

+0

这完全取决于内容如何存储和访问。 CMD知道如何从SMB网络共享('\\ computername \ folder')中获取东西,但是您需要运行一个程序来访问大多数其他内容(即:sqlcmd用于数据库,或者iexplore用于Web内容) –

+0

@RyanBemrose想象我有一个文本文件上传www.mywebsite.com/myfile.txt 是dere任何方式我可以在CMD上查看此文件的内容,或在记事本中打开此文件,但不是浏览器或第三方应用程序 –

+0

CMD如果不使用浏览器或其他程序(如UnxUtils'wget')下载页面,则不支持它。如果允许运行PowerShell,那么使用'Invoke-Webrequest'可能会带来一些好运。 –

回答

1
Set Arg = WScript.Arguments 
set WshShell = createObject("Wscript.Shell") 
Set Inp = WScript.Stdin 
Set Outp = Wscript.Stdout 
On Error Resume Next 
    Set File = WScript.CreateObject("Microsoft.XMLHTTP") 
    File.Open "GET", Arg(1), False 
    File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)" 
    File.Send 
    txt=File.ResponseText 
    'Putting in line endings 
    Outp.write txt 
    If err.number <> 0 then 
     Outp.writeline "" 
     Outp.writeline "Error getting file" 
     Outp.writeline "==================" 
     Outp.writeline "" 
     Outp.writeline "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
     Outp.writeline "Source " & err.source 
     Outp.writeline "" 
     Outp.writeline "HTTP Error " & File.Status & " " & File.StatusText 
     Outp.writeline File.getAllResponseHeaders 
     Outp.writeline LCase(Arg(1)) 
    End If 

一般使用

过滤器是在命令提示符下使用。 Filter.vbs必须使用cscript.exe运行。如果你只是输入过滤器,它将运行一个批处理文件,这将自动执行此操作。

filter subcommand [parameters] 

过滤器只能读取和写入标准输出。这些仅在命令提示符下可用。

filter <inputfile >outputfile 
filter <inputfile | other_command 
other_command | filter >outputfile 
other_command | filter | other_command 

网络

filter web webaddress 
filter ip webaddress 

从网上下载一个文件,并将其写入到标准输出。

webaddress - a web address fully specified including http:// 

获取微软的主页上有19例

filter web http://www.microsoft.com 

过滤命令提示符脚本avaialable在https://onedrive.live.com/redir?resid=E2F0CE17A268A4FA!121&authkey=!AAFg7j814-lJtmI&ithint=folder%2cres

2

这完全取决于内容如何存储和访问。 CMD知道如何从SMB网络共享中获取东西(\ computername \ folder),但您需要运行程序来访问大多数其他内容。 (例如:数据库的sqlcmd)

CMD不支持下载Web内容。您将需要使用其他程序连接到网站并下载页面。很显然,浏览器会工作。另一种选择是从UnxUtils下载wget.exe。或者使用其他脚本语言,如PowerShellWscript

如果您有权启动PowerShell(预装在Windows 7-10),则可以使用。NET库下载网络资源。

PS> Invoke-Webrequest 'www.mywebsite.com/myfile.txt' -OutFile '.\myfile.txt' 

这将使用.NET连接到页面并将其下载到本地目录中。要下载到另一个目录或文件名,请更改-OutFile参数。

要从CMD启动此功能,只需在CMD中输入powershell并从此处运行PS命令即可进入PowerShell提示。或者,您可以使用powershell -c命令从CMD运行PS命令。

powershell.exe -c "invoke-webrequest 'www.mywebsite.com/myfile.txt' -outfile .\myfile.txt" 
2

You can check this question .The最简单的方法是用bitsadmin命令:

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip 

您也可以尝试winhttpjs.bat

call winhhtpjs.bat https://example.com/files/some.zip -saveTo c:\somezip.zip