我有一个简单的问题,我无法解决......
我使用这行批处理在没有回车符的文件中打印命令的结果:
echo | set /P=%tmp% > %~n1.txt
但它不断增加额外的空间,我不想......
我已经阅读了其他一些帖子,但这是我的第一个批处理程序,所以我有点迷失了解决方案:p
我试过了:
%^^^cmd | set /P=%tmp% > %~n1.txt
有什么想法吗?
谢谢!
答案 0 :(得分:2)
你只需要一些报价。
echo | set /P "=%tmp%" > %~n1.txt
虽然有一种更有效的方法可以在没有管道的情况下完成。请注意,仍然应该使用引号。
set /p "=%tmp%" >"%~n1.txt" <nul
如果您不包含引号,则需要以下内容:
set /p =%tmp%>%~n1.txt <nul
但如果%tmp%
的值为数字,或者以空格后跟数字结尾,则未引用的表单将失败。它会失败,因为数字将被视为重定向使用的文件句柄。例如,1等于stdout。
引号是干净地避免文件句柄问题的最简单方法。