Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file “bat文件调试”;备份使用过的文件”;_Batch File_Copy_Backup - Fatal编程技术网

Batch file “bat文件调试”;备份使用过的文件”;

Batch file “bat文件调试”;备份使用过的文件”;,batch-file,copy,backup,Batch File,Copy,Backup,下面是我想做的:我想写一个“bat”文件,它将检查单个分区中的所有文件,以确定今天是否修改/创建了任何文件,如果有,我会将这些文件复制到一个文件夹中。因此,如果我每天在离开办公室之前运行这个bat,我可以将我使用的所有文件备份到一个文件夹中。我现在的bat文件复制的是文件夹而不是文件,有时根本不起作用。。。你能帮我调试一下吗?您可能希望将其放在根目录(如C/D)中,然后将D:/test更改为您计划“测试复制目标文件”的任何文件夹 以下是我目前掌握的代码: @echo off set t=%dat

下面是我想做的:我想写一个“bat”文件,它将检查单个分区中的所有文件,以确定今天是否修改/创建了任何文件,如果有,我会将这些文件复制到一个文件夹中。因此,如果我每天在离开办公室之前运行这个bat,我可以将我使用的所有文件备份到一个文件夹中。我现在的bat文件复制的是文件夹而不是文件,有时根本不起作用。。。你能帮我调试一下吗?您可能希望将其放在根目录(如C/D)中,然后将D:/test更改为您计划“测试复制目标文件”的任何文件夹

以下是我目前掌握的代码:

@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