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 cause pootol var 错误地分配了摄氏度值。我究竟做错了什么?

4

2 回答 2

2

您的问题是%符号,因为它在 cmd-line 和批处理文件中的评估不同。
在批处理文件中,您可以通过加倍来逃避它。

所以你的代码看起来像

c:\digitemp.exe -t0 -o%%C -q  > res1.txt
于 2012-06-11T07:25:58.110 回答
0

在批处理文件%中用于表示变量。所以%C在批处理文件中被解释为一个变量并替换为它的值。由于它没有值,因此将其替换为空字符串。

使用插入符号^转义 the ,%以便解释器将%视为普通字符。

c:\digitemp.exe -t0 -o^%C -q  > res1.txt 
于 2012-06-10T17:17:33.630 回答