我写了一个简单的批处理作业的文件复制从一个文件夹到另一个是比使用forfiles
天的X-数以上。但我需要数已复制的文件的数量。我尝试过各种方法可以做到这一点,但没有成功。可以任何机构帮助我这个低谷?
@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
你可以只管所有的复制文件名的文件,然后计算该文件中的行。在这里,我添加了额外的东西,你可以添加在输出被输送到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
也许晚了答案,但是当我试试这个:
set "string=findstr /R /N "^^" logfile.txt | find /C ":""
for /f %%a in ('!string!') do set count=%%a
我得到一个额外的结果,因为我得到一个空行。所以,我确实需要有加-1到结果。 ATLEAST我的系统上...