好,简单,我想做一个批处理脚本,它:
我遇到的问题是,我试图使用echo将预期的新脚本文本从原始批处理文件复制到新的脚本文本中,如下所示:
@echo off
mkdir "C:\Users\%username%\Desktop\Export"
echo dir "C:\Users\%username%\Desktop\Export" /W /A:-H /B > "C:\Users\%username%\Desktop\Readout.txt" > "C:\Users\%username%\Desktop\Export\Directoty_List.bat"
问题是,echo命令将">“视为语句的结尾,并将第一部分写入桌面文本文件,但我希望它能看到第二个">”。我怎么处理这件事?
谢谢
发布于 2017-01-29 08:55:30
正如理查德在评论中所说的那样,你可以用一个卡雷特符号^>
来逃避这个^>
。在cmd中具有特殊意义的大多数字符,如果您不想使用这个特殊的含义,可以用carret来转义。
通常的金科玉律是:把所有东西放在双引号之间。在双引号中,具有特殊含义的字符也被转义。不幸的是,echo
也会打印引号,所以这在您的情况下不会有任何帮助。值得注意的是,引号有助于设置具有特殊字符的变量的值,传递带有特殊字符的参数,用特殊字符定义路径(例如,空格或括号),.但与echo
不同。
还有一个我想给出的建议:您可以使用%userprofile%
而不是指定整个路径C:\Users\%username%
@echo off
mkdir "%userprofile%\Desktop\Export"
echo dir "%userprofile%\Desktop\Export" /W /A:-H /B ^> "%userprofile%\Desktop\Readout.txt" > "%userprofile%\Desktop\Export\Directoty_List.bat"
https://stackoverflow.com/questions/41902123
复制相似问题