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 行ほどありますが、テストのために 1 つのフォルダーだけを使用し、フォルダー名は単なるプラセボです。

移動コマンドでデフォルトの復帰画面が使えるようになりました

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

しかし、その出力を単純な .txt ファイルに移動して、記録を残す方法がわかりません。

ところで、それを書き込むためのより良い方法またはより良いプログラムがあれば教えてください。調査します!

4

2 に答える 2

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 に答える
1

これを試して:

@echo オフセット&セットローカル
「fname=」を設定
for %%i in (*) do set "fname=%%~i"&call:process
goto:eof

:処理する
MOVE "%fname%" "テスト"
if %errorlevel% neq 0 (echo MOVE "%fname%" FAILURE) else echo MOVE "%fname%" SUCCESSFUL
goto:eof
于 2013-06-12T11:15:59.980 に答える