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 行,但为了测试,我只有一个文件夹,文件夹名称只是安慰剂。

现在我可以通过移动命令使用默认返回屏幕

C:\Test\Home\Test.txt
    1 file(s) moved.

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

顺便说一句,如果有更好的方法或更好的程序来写它,请告诉我,我会调查的!

4

2 回答 2

1

尝试这个:

@echo off&setlocal
设置“fname=”
for %%i in (*) do set "fname=%%~i"&call:process
转到:eof

:过程
移动“%fname%”“测试”
if %errorlevel% neq 0 (echo MOVE "%fname%" FAILURE) else echo MOVE "%fname%" SUCCESSFUL
转到:eof
于 2013-06-12T11:15:59.980 回答
1

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

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

是我用过的!工作正常,不完美,但让我监督已移动的内容!

于 2013-06-13T16:02:29.297 回答