我想要一些在命令提示符窗口(Windows CMD)上获取在线内容的方法。
想象一下,在线托管服务提供给您的托管服务或MySql数据库中存储的一些内容。它可以是以任何形式存储的任何数据。我只想在世界任何地方的CMD窗口的帮助下远程查看它。我应该使用什么命令?
为了更清楚,让我们假设您有一天准备考试。你没有做好准备,而是制定了欺骗计划。
现在,您的考试将在分配给您的计算机上进行,您不能使用浏览器或在PC上下载任何新应用程序。但是你可以使用命令提示符,所以你的任务是作弊是将答案放在网上某处。你无法安装任何新东西。
如果你被困在上面的场景中你会怎么做?
P.S这仅用于教育目的。我没有这样的考试。
答案 0 :(得分:4)
You can check this question。最简单的方法是使用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
答案 1 :(得分:2)
完全取决于内容的存储和访问方式。 CMD知道如何从SMB网络共享(\ computername \文件夹)中获取内容,但是您需要运行程序来访问大多数其他内容。 (例如:sqlcmd表示数据库)
CMD不支持下载网页内容。您需要使用其他程序连接到网站并下载页面。显然浏览器会起作用。另一种方法是从UnxUtils下载wget.exe
。或者使用其他脚本语言,例如 PowerShell 或 Wscript 。
如果您有权启动PowerShell(预装在Windows 7-10上),则可以使用.NET库下载Web资源。
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 :(得分: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
一般用途
过滤器用于命令提示符。必须使用cscript.exe运行Filter.vbs。如果您只是输入过滤器,它将运行一个自动执行此操作的批处理文件。
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://
示例强>
获取Microsoft的主页
filter web http://www.microsoft.com
中的19个示例命令提示符脚本进行过滤
答案 3 :(得分:0)
除了VBScript和JScripts,Windows上还有一个实用程序(驻留在CMD中),可以从CMD运行(如果您具有写权限):
set url=https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg
set file=file.jpg
certutil -urlcache -split -f %url% %file%
Powershell中的cmdlet:
$url = "https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg"
$file = "file.jpg"
$ProgressPreference = "SilentlyContinue";
Invoke-WebRequest -Uri $url -outfile $file
.Net在PowerShell下:
$url = "https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg"
$file = "file.jpg"
# Add the necessary .NET assembly
Add-Type -AssemblyName System.Net.Http
# Create the HttpClient object
$client = New-Object -TypeName System.Net.Http.Httpclient
$task = $client.GetAsync($url)
$task.wait();
[io.file]::WriteAllBytes($file, $task.Result.Content.ReadAsByteArrayAsync().Result)
使用csc.exe在命令行上构建的C#应用程序:
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
namespace DownloadImage
{
class Program
{
static async Task Main(string[] args)
{
using var httpClient = new HttpClient();
var url = "https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg";
byte[] imageBytes = await httpClient.GetByteArrayAsync(url);
using var fs = new FileStream("file.jpg", FileMode.Create);
fs.Write(imageBytes, 0, imageBytes.Length);
}
}
}
内置于Windows应用程序中。无需外部下载。
在Win 10上测试
答案 4 :(得分:0)
Windows 10 内部版本 17063 及更高版本提供 curl.exe
(参考:https://techcommunity.microsoft.com/t5/containers/tar-and-curl-come-to-windows/ba-p/382409)。假设您不需要支持早期的 Windows 版本,包括早期的 Windows 10 版本,您可以像这样在批处理文件中使用它
curl http://example.com/ --output content.txt
notepad content.txt