批处理 - 无法打印字符串开头的空格

时间:2015-06-24 11:57:45

标签: windows string batch-file command

我有一个名为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;我该怎么办?提前谢谢!

1 个答案:

答案 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%"

当命令一起展开时,需要!而不是%,例如作为iffor块的一部分。但是,必须先发出命令setlocal EnableDelayedExpansion,我们在此问题中没有提到过。

我建议进一步阅读有关交换命令和输出重定向的信息:Problems with an extra space when redirecting variables into a text file