这是我的初始批处理脚本。
@echo off
if "%MACHINE%" == "0" ( call:verif TestFolder txt )
if "%MACHINE%" == "0" ( call:verif TestFolder exe )
goto:eof
:verif
if not exist %~1 ( mkdir %~1 )
move *.%~2 ..\..\%~1\
我想要做的是记录无法在log.txt中移动的文件名
我尝试了什么:robocopy(支持日志,但我不高兴,因为我只想记录失败)
我认为可行的是输出stderr,类似于:
move *.%~2 ..\..\%~1\ 2>stderr.txt
输出(对于没有权利的文件)
Access is denied.
但是我怎么知道错误是哪个.exe或.txt?需要以某种方式与文件名连接。
如果您知道解决方案或更好的方法,请告诉我。
答案 0 :(得分:2)
而不是同时移动所有* .txt
和.exe
文件 - 为什么不使用for循环来单独移动它们?
for %%a in (*.%~2) do move %%a ..\..\%~1\ || echo %%a>>fail.log
||
之后的代码只有在移动命令设置错误级别时才会运行。