加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 02:21:09 所属栏目:Windows 来源:网络整理
导读:我有一个名为compare的命令,它返回一个数字.我想打印一些空格,然后“文本”然后将数字写入文件.预期输出如下: text1 我的代码打印text1没有空格 set "output= text"nul set /p "=!output!" "%resultFile%"compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2 "%
我有一个名为compare的命令,它返回一个数字.我想打印一些空格,然后“文本”然后将数字写入文件.预期输出如下:

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%

请参阅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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读