Scripting 根据批处理文件中修改的日期复制文件

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

我正在尝试使用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
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(