我有一个名为compare的命令,它返回一个数字。我想打印一些空格然后" 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%"
,但它给了我一个错误&#34;&gt;&gt;在这个时候出人意料。&#34;我该怎么办?提前谢谢!
答案 0 :(得分:1)
这很有效:
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%
见https://stackoverflow.com/a/2340018/711006。我更喜欢for
选项,但它不适用于错误输出。
修改强>
OP建议编辑最后一行:
echo !output!!number! >> "%resultFile%"
当命令一起展开时,需要!
而不是%
,例如作为if
或for
块的一部分。但是,必须先发出命令setlocal EnableDelayedExpansion
,我们在此问题中没有提到过。
我建议进一步阅读有关交换命令和输出重定向的信息:Problems with an extra space when redirecting variables into a text file