批量设置变量到网站的内容

时间:2017-05-27 14:30:19

标签: batch-file web cmd

我知道

set /p var=<some.txt

将var设置为文本文件的内容。 但是我怎样才能获得webressource的内容?

set /p var=<http://example.com/somefile.php

这应该是这样的。 PHP-File返回一些生成的文本。

1 个答案:

答案 0 :(得分:3)

这只是batch 唯一回答,因为它不需要第三方程序,VBS或任何其他内容。

基本上你会从这样的东西开始 - 你下载一个文件,把它设置为变量并尝试回应它。

bitsadmin.exe /transfer "MyTask" "https://xkcd.com/1678/index.html" "%cd%\content.html"
set /p content=<content.html
echo %content%
嗯,不是那么快。批处理不喜欢它,除非内容没有它可以实际解释的特殊内容,因此您需要确保该文件不包含批处理命令或任何可以解释为它们的内容。

例如,如果您的文件包含<,那么如果文件的内容只是<missing.txt,那就是您将获得的(即尝试加载不存在的文件的内容) ):

set /p nope=<file.txt
echo %nope%  # warning

您需要转义内容:

:: to make ! work (google what delayed expansion is)
setlocal enabledelayedexpansion

:: fetch a file from that url
bitsadmin.exe /transfer "MyTask" "https://xkcd.com/1678/index.html" "%cd%\content.html"

:: clear the variable if available
set "content="

:: load content from file
for /f "delims=" %%i in (content.html) do set content=!content!%%i

:: echo with escaping special characters, keywords, etc
:: the bracket is really important here :)
echo(!content!

:: disable expansion
endlocal