我一直在网上看,似乎无法找到我正在寻找的东西。在开始之前,我绝不是一位经验丰富的命令行用户,所以请保持温和。
我需要一个批处理文件,将两个最新文件从一个目录复制到另一个目录,然后我需要删除目标文件夹中的文件,这些文件只留下最新的两个文件。
值得注意的是,我已经尝试过/ d命令(不包括日期)但是,这会开始复制所有文件而不是最近的文件。
请帮帮忙?
由于
答案 0 :(得分:0)
未经测试:
setlocal enableDelayedExpansion
set "source=c:\source"
set "target=c"\target"
set "counter=0"
for /f "tokens=* delims=" %%# in ('dir "%source%" /b /o:-d /t:c /a:-d') do (
set /a counter=counter+1
echo "%%#"
copy "%source%\%%#" "%target%" /Y
if !counter! equ 2 goto :break
)
:break
答案 1 :(得分:0)
您的描述有点颠倒 首先将文件复制到目的地然后删除除了两个新文件之外的所有文件有点笨拙。
非常 窃取 npocmaka的代码作为基础:
@Echo off
setlocal enableDelayedExpansion
set "source=c:\source_folder"
set "target=c:\target"
PushD "%source%"
set "counter=0"
for /f "tokens=* delims=" %%A in ('dir "*.bak" /b /o:-d /t:w') do (
set /a counter+=1
Set Copy[!counter!]=copy "%%~fA" "%target%\"
if !counter! equ 2 goto :break
)
:break
Del /Q "%target%\*"
For /L %%C in (1,1,%counter%) Do !Copy[%%C]!
PopD
答案 2 :(得分:0)
以下脚本用于复制文件夹中存在的最新 4 个文件:
submit handler