批处理 - 无法打印字符串开头的空格
Batch - Can't print spaces beginning of a string
我有一个名为比较的命令,它 returns 一个数字。我想打印一些空格,然后 "text" 然后将数字打印到文件中。预期输出如下:
text1
我的代码打印 text1
没有空格
set "output= text"
<nul set /p "=!output!" >> "%resultFile%"
compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2>> "%resultFile%"
我试图打印一个制表符 echo <TAB> >> "%resultFile%"
但它给了我一个错误“>> 此时是意外的。”我应该怎么办?提前致谢!
这个效果很好:
set "output= text"
>> "%resultFile%" echo %output%
那么将命令输出附加到批处理本身呢?
set "output= text"
call compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2> temp.txt
set /p number=<temp.txt
del temp.txt
>> "%resultFile%" echo %output%%number%
参见。我更喜欢 for
选项,但它不适用于错误输出。
编辑
OP 建议编辑最后一行:
echo !output!!number! >> "%resultFile%"
当命令一起扩展时,需要 !
而不是 %
,例如作为 if
或 for
块的一部分.但是,之前必须发出命令setlocal EnableDelayedExpansion
,我们在这个问题中没有提到这一点。
我建议进一步阅读有关交换命令和输出重定向的内容:Problems with an extra space when redirecting variables into a text file
我有一个名为比较的命令,它 returns 一个数字。我想打印一些空格,然后 "text" 然后将数字打印到文件中。预期输出如下:
text1
我的代码打印 text1
没有空格
set "output= text"
<nul set /p "=!output!" >> "%resultFile%"
compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2>> "%resultFile%"
我试图打印一个制表符 echo <TAB> >> "%resultFile%"
但它给了我一个错误“>> 此时是意外的。”我应该怎么办?提前致谢!
这个效果很好:
set "output= text"
>> "%resultFile%" echo %output%
那么将命令输出附加到批处理本身呢?
set "output= text"
call compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2> temp.txt
set /p number=<temp.txt
del temp.txt
>> "%resultFile%" echo %output%%number%
参见。我更喜欢 for
选项,但它不适用于错误输出。
编辑
OP 建议编辑最后一行:
echo !output!!number! >> "%resultFile%"
当命令一起扩展时,需要 !
而不是 %
,例如作为 if
或 for
块的一部分.但是,之前必须发出命令setlocal EnableDelayedExpansion
,我们在这个问题中没有提到这一点。
我建议进一步阅读有关交换命令和输出重定向的内容:Problems with an extra space when redirecting variables into a text file