使用管道从echo命令中删除多余的空间

时间:2016-02-09 15:39:55

标签: batch-file

我有一个简单的问题,我无法解决......

我使用这行批处理在没有回车符的文件中打印命令的结果:

echo | set /P=%tmp% > %~n1.txt

但它不断增加额外的空间,我不想......

我已经阅读了其他一些帖子,但这是我的第一个批处理程序,所以我有点迷失了解决方案:p

我试过了:

%^^^cmd | set /P=%tmp% > %~n1.txt

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你只需要一些报价。

echo | set /P "=%tmp%" > %~n1.txt

虽然有一种更有效的方法可以在没有管道的情况下完成。请注意,仍然应该使用引号。

set /p "=%tmp%" >"%~n1.txt" <nul

如果您不包含引号,则需要以下内容:

set /p =%tmp%>%~n1.txt <nul

但如果%tmp%的值为数字,或者以空格后跟数字结尾,则未引用的表单将失败。它会失败,因为数字将被视为重定向使用的文件句柄。例如,1等于stdout。

引号是干净地避免文件句柄问题的最简单方法。