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

时间:2013-06-12 09:44:59

标签: logging batch-file move

我只是需要一些帮助来创建我正在运行的批处理脚本的日志文件。当我将文件从1台服务器移动到另一台服务器时,知道何时移动了一些东西会很方便。

目前我尝试过以下几件事:

if %errorlevel% GTR 0 (echo MOVE FAILURE>Logs\log.txt) else (echo MOVE SUCCESSFUL>Logs\log.txt)

但这只是草率的代码,因为我必须把它放在每一行之后,而且它并没有告诉我刚刚移动的文件的名称。

此处是我的代码:

@Echo OFF

cd C:\Test

MOVE "Home\*.*" "Work"

Echo COMPLETE
Pause

当然还有更多行,大约有20行,但为了测试我只有一个文件夹,文件夹名称只是安慰剂。

现在我可以使用Move Command

的默认返回屏幕
C:\Test\Home\Test.txt
    1 file(s) moved.

但我不知道如何将该输出移动到一个简单的.txt文件中,我可以保留一个记录。

顺便说一句,如果有更好的方式或更好的程序来写它让我知道,我会调查!

2 个答案:

答案 0 :(得分:1)

试试这个:

@echo off&setlocal
set "fname=" 
for %%i in (*) do set "fname=%%~i"&call:process
goto:eof

:process
MOVE "%fname%" "test"
if %errorlevel% neq 0 (echo MOVE "%fname%" FAILURE) else echo MOVE "%fname%" SUCCESSFUL
goto:eof

答案 1 :(得分:1)

由dbenham提供:您应该调查ROBOCOPY命令。它有移动文件的选项,它可以提供完成的日志。

robocopy "Home" "Office" /MOV /NJH /NP /NS /NC /LOG+:"Desktop\Log-%date:/=%-%time:~0,2%;%time:~3,2%.txt"

是我用过的!工作得很好,不完美,但让我监督被移动的东西!