2009-11-01 296 views
1

讀取命令的Windows批處理文件,我有以下內容這個test.txt文件:從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文件,並創建一個在後臺執行所有操作的不可見應用程序。

回答

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),它爲我執行。

+0

很聰明! ... – 2009-11-01 21:51:11

+0

它的工作,謝謝。 我知道是將文件重命名爲.cmd,只是想創建一個.exe文件。 – Splash 2009-11-01 22:04:47

+0

有一些工具可以從批處理文件中創建可執行文件。 – Joey 2009-11-02 06:23:36

0

只需將test.txt重命名爲test.bat並運行即可。

+0

@johannes ..你贏了23秒! – 2009-11-01 21:46:26

+0

即使啓用了@echo off選項,在打開存檔之前仍然出現命令提示符窗口,如果我創建了一個在後臺運行的小應用程序,則用戶可見的唯一一件事就是下載按鈕,並且處理應用程序檔案。 – Splash 2009-11-01 22:06:35

+0

您可以在不打開命令提示符的情況下運行.bat文件。看到START命令。 – 2009-11-02 17:13:05