2017-05-27 51 views
0

的内容我知道批次变量设置为网站

set /p var=<some.txt 

设置VAR到文本文件的内容。 但是我怎样才能得到一个webressource的内容?

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

这就是它应该如何工作的。 PHP文件返回一些生成的文本。

回答

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 

OR你需要躲避内容:

:: 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