计划备份的批处理/脚本
Batch / Script for a scheduled Backup
很抱歉我对这个主题的了解不多,对此不是很熟悉,但是就这样吧。
我想创建一个脚本来备份文件,并将其放入以当前日期命名的文件夹中,但是我只需要在文件已被修改时进行备份,作为同一文件的副本不需要。
我找到了一个示例脚本并对其进行了轻微修改以尝试满足我的需求,
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%HH%%Min%_%DD%%MM%%YYYY%"
echo ### Backing Up
ROBOCOPY C:\Users\User1\Desktop\Backup\testing.txt C:\Testbackup\%datestamp% /fft /e /xo /xx /COPY:DAT
@pause
这在一定程度上起作用.. 它会复制内部数据,而不管由于创建的新目录上的日期戳而发生的变化,我不确定如何让脚本分析 "testing.txt"修改日期而不是创建新目录并在其中复制文件。
朝着正确的方向推动将是一个巨大的帮助,
如前所述,我在编码方面是 "newbie",所以请温柔点:)
谢谢
如果您可以使用 xcopy
而不是 robocopy
,请参阅 xcopy /?
并查看 /m
选项。
每当更改文件时,都会设置存档标志。 xcopy /m ...
仅复制设置了存档标志并为源文件取消设置的文件,因此另一个 xcopy /m ...
将忽略该文件,因为存档位一直未设置,直到文件被更改。
(我不使用 robocopy,但我没有在它的帮助中找到类似的功能 - 我觉得这很了不起,因为他们说 robocopy 更好 "copy")
编辑满足评论:
dir /aa "C:\Users\User1\Desktop\Backup\testing.txt" >nul 2>&1 && ( goto :fileChanged ) || ( goto :fileUnchanged )
dir /aa
试图找到那个文件并且它的存档标志被设置(表明文件已被更改)。如果(文件不存在)或(存在,但未设置存档标志),%errorlevel% 将为“1”。
Robocopy 可以监视源并在进行 n
更改时执行复制。例如:
robocopy /mon:1 c:\Scripts\ c:\test4\ zzz.cmd /r:5 /w:5
这将复制文件 zzz.cmd
并指示 RoboCopy 监视文件并在源文件更改时再次复制,重试限制为 5 次,重试之间暂停 5 秒。
很抱歉我对这个主题的了解不多,对此不是很熟悉,但是就这样吧。
我想创建一个脚本来备份文件,并将其放入以当前日期命名的文件夹中,但是我只需要在文件已被修改时进行备份,作为同一文件的副本不需要。
我找到了一个示例脚本并对其进行了轻微修改以尝试满足我的需求,
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%HH%%Min%_%DD%%MM%%YYYY%"
echo ### Backing Up
ROBOCOPY C:\Users\User1\Desktop\Backup\testing.txt C:\Testbackup\%datestamp% /fft /e /xo /xx /COPY:DAT
@pause
这在一定程度上起作用.. 它会复制内部数据,而不管由于创建的新目录上的日期戳而发生的变化,我不确定如何让脚本分析 "testing.txt"修改日期而不是创建新目录并在其中复制文件。
朝着正确的方向推动将是一个巨大的帮助,
如前所述,我在编码方面是 "newbie",所以请温柔点:)
谢谢
如果您可以使用 xcopy
而不是 robocopy
,请参阅 xcopy /?
并查看 /m
选项。
每当更改文件时,都会设置存档标志。 xcopy /m ...
仅复制设置了存档标志并为源文件取消设置的文件,因此另一个 xcopy /m ...
将忽略该文件,因为存档位一直未设置,直到文件被更改。
(我不使用 robocopy,但我没有在它的帮助中找到类似的功能 - 我觉得这很了不起,因为他们说 robocopy 更好 "copy")
编辑满足评论:
dir /aa "C:\Users\User1\Desktop\Backup\testing.txt" >nul 2>&1 && ( goto :fileChanged ) || ( goto :fileUnchanged )
dir /aa
试图找到那个文件并且它的存档标志被设置(表明文件已被更改)。如果(文件不存在)或(存在,但未设置存档标志),%errorlevel% 将为“1”。
Robocopy 可以监视源并在进行 n
更改时执行复制。例如:
robocopy /mon:1 c:\Scripts\ c:\test4\ zzz.cmd /r:5 /w:5
这将复制文件 zzz.cmd
并指示 RoboCopy 监视文件并在源文件更改时再次复制,重试限制为 5 次,重试之间暂停 5 秒。