我尝试执行以下脚本,该脚本将最新文件从一个文件夹复制到另一个文件夹。但是我在不同的场景中测试了下面的脚本,它甚至复制了文件CC * .txt,如果它存在于除C:\ Source之外的子文件夹中。 但是我想从仅下面脚本中提到的源目录(C:\ Source)复制最新文件,但是如果任何文件夹/子文件夹中存在相同的新文件,则不应该考虑,请提出建议
FOR /F %%I IN ('DIR "C:\Source\cc*.txt" /B /A:-D /T:W /O:D /S') DO SET "LATEST=%%~I"
COPY "%LATEST%" "C:\Destination"
PS:主要是因为/S
,但我不确定只需从指定的目录C:\Source
中选择文件需要使用哪个选项,请提出建议。
答案 0 :(得分:0)
试试这个:
for /f "tokens=*" %%A in ('dir /b /s /O:D "C:\Source\cc*.txt"') do set "latest=%%A"
copy "%latest%" "C:\Destination"
答案 1 :(得分:0)
FOR /F %%I IN ('DIR cc*.txt /B /O:-D') DO COPY %%I "C:\Destination" & EXIT
超级容易。
FOR /F "delims=|" %%I IN ('DIR "cc*.txt" /B /O:D') DO COPY %%I "C:\Destination"
两者都应该
答案 2 :(得分:0)
只需删除/S
选项(告诉dir
也处理子目录):
FOR /F %%I IN ('DIR "C:\Source\cc*.txt" /B /A:-D /T:W /O:D') DO SET "LATEST=%%~I"
COPY "C:\Source\%LATEST%" "C:\Destination"
由于没有dir /B
开关的/S
仅返回纯文件名,因此您需要再次在复制源中包含源位置,以使脚本可以在任何工作目录中工作。