2017-09-05 5 views
1

forfilesを使用してx-daysよりも古いファイルを別のフォルダにコピーする単純なバッチジョブを作成しましたが、コピーされたファイルのうち、私はこれを行うにはさまざまな方法を試しましたが、失敗しました。Windowsバッチ:forfilesコマンドを使用して削除されたファイルの数をカウントします。

@Echo off 
 

 
Echo Starting the script for copying files to other folder. 
 

 
set dt=%date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2% 
 

 
set filesMovedCount=0 
 

 
forfiles /p C:\symphonybackup\symphonybackup\Symphony\SymphonyArcheive /s /m *.* /d -30 /c "cmd /c echo @path >> C:\symphonybackup\symphonybackup\Symphony\%dt%.log & cmd /c copy @path C:\symphonybackup\symphonybackup\Symphony\SymphonyTemp" 
 

 
Echo filesmovedcount:%filesMovedCount% 
 

 
Echo finised copying the files

+0

コピープロセスの出力をログファイルにパイプし、完了したら行を数えることができます。 –

答えて

1

あなただけのパイプファイルにコピーしたファイル名のすべてと、その後は、ファイル内の行を数えることができます。ここで私は追加のものを追加しました。出力が表示された場所にlogfileに出力される場所にコマンドを追加するだけです。終了すると、カウントがエコーされ、ファイルが削除されます。

@echo off 
forfiles /p "rest of copy commands" >>logfile.txt 
setlocal EnableDelayedExpansion 
set "string=findstr /R /N "^^" logfile.txt | find /C ":"" 

for /f %%a in ('!string!') do set count=%%a 
echo %count% files copied 
del /Q logfile.txt 
関連する問題