Scripting 根据批处理文件中修改的日期复制文件
我正在尝试使用DOS批处理脚本将文件从一个目录复制到另一个目录。我要复制的文件是4或3个最新的文件。这一数字将是静态的,但尚未确定。是否根据修改日期进行复制 谢谢您可以: 1) 按日期降序修改Scripting 根据批处理文件中修改的日期复制文件,scripting,batch-file,copy,Scripting,Batch File,Copy,我正在尝试使用DOS批处理脚本将文件从一个目录复制到另一个目录。我要复制的文件是4或3个最新的文件。这一数字将是静态的,但尚未确定。是否根据修改日期进行复制 谢谢您可以: 1) 按日期降序修改dir命令排序文件 2) 在“for”循环中使用dir命令的输出来复制相应的文件 3) 在for循环中计数到3(或4),以限制复制的文件数 @ECHO OFF SET "srcdir=D:\Source" SET "tgtdir=D:\Target" SET /A topcnt=3 SET /A cnt=0
dir
命令排序文件
2) 在“for”循环中使用dir
命令的输出来复制相应的文件
3) 在for
循环中计数到3(或4),以限制复制的文件数
@ECHO OFF
SET "srcdir=D:\Source"
SET "tgtdir=D:\Target"
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
SET /A cnt+=1
SETLOCAL EnableDelayedExpansion
IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
ENDLOCAL
COPY "%srcdir%\%%F" "%tgtdir%"
)
你可以:
1) 按日期降序修改dir
命令排序文件
2) 在“for”循环中使用dir
命令的输出来复制相应的文件
3) 在for
循环中计数到3(或4),以限制复制的文件数
@ECHO OFF
SET "srcdir=D:\Source"
SET "tgtdir=D:\Target"
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
SET /A cnt+=1
SETLOCAL EnableDelayedExpansion
IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
ENDLOCAL
COPY "%srcdir%\%%F" "%tgtdir%"
)
xcopy源-目标m-d-y是我能找到的最接近批处理的。使用vbsscripting会更容易,而且您可以找到与所需内容接近的内容。xcopy源-目标m-d-y是使用batch可以找到的最接近的。使用vbsscripting会更容易,而且您可以找到与所需内容接近的内容。谢谢,我没有想到使用dir对文件进行排序。这应该可以很好地工作。@Jack:在
%srcdir%
之后的FOR
行中添加掩码,如下所示:FOR/F“tokens=*”%%F IN('DIR/A-D/OD/TW/B”%srcdir%\*.zip“)DO(
谢谢,我没有想到使用dir对文件进行排序。这应该可以很好地工作。@杰克:将掩码添加到%srcdir%
行的后面,就像这样:FOR/F“tokens=*”%%F IN('dir/A-D/OD/TW/B”%srcdir%\*.zip“)DO(