我在批处理中输入了以下命令:
copy K:\xxx.exe F:\ >>1.txt
我的想法是把K盘下的xxx.exe文件拷贝到F:\下,并把报错输出到1.txt。
现在我没有插K盘,运行命令之后,检查1.txt没有发现报错。但是我运行CMD执行同样的语句之后有报错:系统找不到指定驱动器。
我的问题有两个:
1、为什么运行CMD之后有报错,但是批处理输出的文本文件却没有错;
2、运行CMD的时候加>>1.txt不会将结果返回到这个文本文件中吗?如果要返回,返回到哪里去了?
參考答案:1、为什么运行CMD之后有报错,但是批处理输出的文本文件却没有错;
可能是执行COPY命令首先检查到不存在的驱动器,立即报错,并且同时中止COPY的执行,>>没有得到执行,所以文本文件什么都没有。
2、运行CMD的时候加>>1.txt不会将结果返回到这个文本文件中吗?如果要返回,返回到哪里去了?
>>1.txt是将屏幕上显示的东西输出到文本,但如果你想知道到底是什么错误,最好还是用if errorlevel 错误代码 来跳转,也不麻烦啊
做个试验。XCOPY比较强大,COPY可能就两个返回值。
copy %0 f:\>1.txt
echo TT返回值%errorlevel%>>1.txt
echo.>>1.txt
copy %0 Z:\>>1.txt
echo TF返回值%errorlevel%>>1.txt
echo.>>1.txt
copy z:\fdasfd.txt f:\>>1.txt
echo FT返回值%errorlevel%>>1.txt
echo.>>1.txt
copy z:\fdasfd.txt W:\>>1.txt
echo FF返回值%errorlevel%>>1.txt
我很少看见直接在COPY后面根>>重定向符号,有空交流。