Windows批处理:计数的文件数量使用FORFILES命令已删除

问题描述 投票:1回答:2

我写了一个简单的批处理作业的文件复制从一个文件夹到另一个是比使用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
windows batch-file
2个回答
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

1
投票

也许晚了答案,但是当我试试这个:

set "string=findstr /R /N "^^" logfile.txt | find /C ":""

for /f %%a in ('!string!') do set count=%%a

我得到一个额外的结果,因为我得到一个空行。所以,我确实需要有加-1到结果。 ATLEAST我的系统上...

© www.soinside.com 2019 - 2024. All rights reserved.