我有这个test.txt文件,其中包含以下内容:
@echo off
wget -q http://subs.ro/get/21518
move 21518 %userprofile%/Desktop/21518.zip
%userprofile%/Desktop/21518.zip
此文件由javascript生成,内容会保持更改。 我有以下text.bat文件:
for /F "eol=; tokens=1* delims=" %%i in ( test.txt ) do %%i
问题是链接到了
无法识别桌面,因为无法识别系统变量%userprofile%,将其粘贴为txt字符串。
我正在使用此设置,因为我想将bat文件转换为exe并创建一个在后台执行所有操作的不可见应用程序。
答案 0 :(得分:2)
为什么不将文件重命名为test.cmd
并直接运行?
但以下情况应该有效:
@echo off
for /F "eol=; tokens=1* delims=" %%i in ( test.txt ) do call :run %%i
goto :eof
:run
%*
goto :eof
这里的原因是for
本身不会在其变量中扩展环境变量。可能是批次中唯一的情况就是这种情况。所以我只是将这一行交给一个子程序(run
),它为我执行。
答案 1 :(得分:0)
将test.txt重命名为test.bat并运行它。