MOVE操作后批量生成日志文件失败

时间:2014-02-03 20:10:12

标签: batch-file logging move

这是我的初始批处理脚本。

@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?需要以某种方式与文件名连接。

如果您知道解决方案或更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:2)

而不是同时移动所有* .txt.exe文件 - 为什么不使用for循环来单独移动它们?

for %%a in (*.%~2) do move %%a ..\..\%~1\ || echo %%a>>fail.log

||之后的代码只有在移动命令设置错误级别时才会运行。