2012-06-10 72 views
0

如果在命令行上我執行:如何一個批處理命令的結果分配給一個變量

c:\digitemp.exe -t0 -o%C -q > res1.txt 

res1.txt正確地包含在攝氏數值溫度(比如說:24.23456)。但是,如果同一命令是一個bat文件內執行(比如:test.bat的):

@ECHO OFF 
ECHO Hola pootol! 
ECHO. 
c:\digitemp.exe -t0 -o%C -q > res1.txt 
rem set pootol = < res1.txt 
rem set pootol 
ECHO Prem una tecla per sortir. 
pause > null 

res1.txt包含我懷疑是關係到參數" -o%C "一個錯誤的攝氏溫度值。正如你可以看到我rem變量assing導致pootol var在提到之前被錯誤地分配了攝氏度值。我究竟做錯了什麼?

+0

我已經嘗試了一些語法和格式錯誤在你的問題。然而,我不知道什麼「因爲你可以看到我'rem'變量assing導致pootol var在提到它之前被指定爲攝氏溫度值」的意思。你能自己澄清一下嗎? – Chris

回答

0

批處理文件%用於表示變量。所以%C在批處理文件中被解釋爲一個變量並用其值替換。由於它沒有值,所以它被替換爲空字符串。

使用脫字符^字符來逃避%,以便解釋程序將%視爲正常字符。

c:\digitemp.exe -t0 -o^%C -q > res1.txt 
+0

謝謝你的答案,但我得到了與你所說的脫字符^相同的結果。還有另一個景觀角色嘗試?再次感謝! – Toni

+0

找到了!感謝-o %% C(http://www.robvanderwoude.com/escapechars.php)它現在可以工作! – Toni

2

你的情況的問題是%標誌,因爲它的評價在cmd線和在批處理文件不同。
在批處理文件中,您可以將其加倍並轉義。

所以,你的代碼看起來像

c:\digitemp.exe -t0 -o%%C -q > res1.txt 
相關問題