基本上我需要能够从源文件夹中复制新文件,这些文件在上次脚本运行到目标文件夹时不存在。
以下是我的想法:
-Script每1分钟运行一次 - 源文件夹 - 目标文件夹 -Log文件记录复制的文件
过程:
- 按文件运行目录文件并检查日志文件以确定是否需要复制文件。
- 如果文件存在于日志文件中,请勿复制
- 如果文件不存在于日志文件中,复制到目标文件夹,将文件路径/文件名写入日志文件
- 继续目录
中的下一个文件这就是我所拥有的,但我遇到的问题是findtr并不完全确定这是最好的方法。
@echo off
:start
for /r "C:\Source" %%i in (*) do (
echo --------------------------------------
echo Searching for: %%i
type log.txt | findstr /L "%%i"
if %ERRORLEVEL% EQU 1 (
echo NOT FOUND
goto copyfile
)
if %ERRORLEVEL% EQU 0 (
echo FOUND
)
echo ------------------------------------------
:copyfile
echo ------------------------------------------------------------------
echo Copy %%i
copy "%%i" C:\Destination
echo Writing to log file: %%i
echo -------------------------------------------------------------------
echo %%i >> log.txt
)
我非常感谢这种见解。谢谢大家的时间。
答案 0 :(得分:1)
正如 MC ND 指出RoboCopy是答案,当然对我有用。
robocopy source-path destination-path /r:30 /w:20 /mon:1 /mot:1 /log+: path-to-log
/ r:30 - 如果发生复制错误,则重试复制30次
/ w:20 - 在重试复印之前等待20秒
/ mon:1 - 监视源目录以更改1个文件
/ mot:1 - 在检查更改前等待1分钟
/ log +: - 追加到日志文件
要在cmd类型robocopy /?
中查看有关Robocopy的更多信息