我有一个Windows目录,其中总共包含4个文件。文件名如下:
- 地址_1502.csv
- 地址_1602.csv
- Site_1502.csv
- Site_1602.csv
文件名的前缀永远不会改变,因此文件将始终以Address_
或开头site_
。我正在尝试找到一个命令,可以将两个文件中最新的文件从其当前目录复制到另一个目录。我目前有以下脚本,但是它只能找到所有 4 个文件中最新的文件并将其复制过去,但是我想找到两个 Address_ 文件中最新的文件和两个 Site_ 文件中最新的文件。
有人可以帮忙吗?
set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" ||(
echo.Source does not exist&pause&goto EOF)
for /f "tokens=*" %%f in (
'dir /A-D /OD /B') Do set "file=%%f"
popd
xcopy /d /i "%source%\%file%" "%dest%\"
答案1
我想找到两个 Address_ 文件中最新的一个以及两个 Site_ 文件中最新的一个。
使用以下批处理文件:
@echo off
Setlocal EnableDelayedExpansion
set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" || ( echo.Source does not exist & pause & goto done2)
for /f "delims=" %%a in ('dir Address_*.csv /a-d /b /O:d') do (
xcopy /d /i "%source%\%%a" "%dest%\"
goto :done1
)
:done1
for /f "delims=" %%a in ('dir Site_*.csv /a-d /b /O:d') do (
xcopy /d /i "%source%\%%a" "%dest%\"
goto :done2
)
:done2
popd
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。