Batch file “bat文件调试”;备份使用过的文件”;
下面是我想做的:我想写一个“bat”文件,它将检查单个分区中的所有文件,以确定今天是否修改/创建了任何文件,如果有,我会将这些文件复制到一个文件夹中。因此,如果我每天在离开办公室之前运行这个bat,我可以将我使用的所有文件备份到一个文件夹中。我现在的bat文件复制的是文件夹而不是文件,有时根本不起作用。。。你能帮我调试一下吗?您可能希望将其放在根目录(如C/D)中,然后将D:/test更改为您计划“测试复制目标文件”的任何文件夹 以下是我目前掌握的代码:Batch file “bat文件调试”;备份使用过的文件”;,batch-file,copy,backup,Batch File,Copy,Backup,下面是我想做的:我想写一个“bat”文件,它将检查单个分区中的所有文件,以确定今天是否修改/创建了任何文件,如果有,我会将这些文件复制到一个文件夹中。因此,如果我每天在离开办公室之前运行这个bat,我可以将我使用的所有文件备份到一个文件夹中。我现在的bat文件复制的是文件夹而不是文件,有时根本不起作用。。。你能帮我调试一下吗?您可能希望将其放在根目录(如C/D)中,然后将D:/test更改为您计划“测试复制目标文件”的任何文件夹 以下是我目前掌握的代码: @echo off set t=%dat
@echo off
set t=%date%
set t=%t:~0,10%
echo %t%
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%i in ('dir /b /a-d') do (
set d=%%~ti
set d=!d:~0,10!
echo !d!
if "!d!"=="%t%" (if not "%~nx0"=="%%i" copy "%%i" d:\test))
for /f "tokens=*" %%j in ('dir /b /ad') do (
set d=%%~tj
set d=!d:~0,10!
echo !d!
if "!d!"=="%t%" (echo d|xcopy /e /y "%%j" d:\test\%%j))
您可以使用
robocopy
?此行将把c:\source及其子文件夹中最后一天修改过的所有文件复制到d:\test
robocopy c:\source d:\test *.* /s /maxage:1
当然,如果有一天您忘记运行它,您将丢失当天接触到的任何文件。因此,如果这确实用于备份,更好的方法是使用归档位
robocopy c:\source d:\test *.* /s /m
创建或编辑文件时,Windows将清除存档位。
robocpy
使用/m
开关将仅复制具有存档位设置的文件(仅指自上次运行脚本以来更改的文件),然后设置存档位。您应该提供您的本地日期格式。此echo d | xcopy
应该做什么?不客气。如果这回答了您的问题,请将其标记为已接受。
robocopy c:\source d:\test *.* /s /m