我只是需要一些帮助来创建我正在运行的批处理脚本的日志文件。当我将文件从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文件中,我可以保留一个记录。
顺便说一句,如果有更好的方式或更好的程序来写它让我知道,我会调查!
答案 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"
是我用过的!工作得很好,不完美,但让我监督被移动的东西!