2016-06-21 51 views
0

我試圖執行下面的腳本,該腳本將最新文件從一個文件夾複製到另一個文件夾。但是我在不同的場景下測試了下面的腳本,如果它存在於C:\ Source之外的子文件夾中,它甚至會複製CC * .txt文件。 但我想從下面的腳本中提到的源目錄(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

只需刪除該/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開關返回純粹的文件名稱,您需要再次將源位置包含在複製源中e腳本可以從任何工作目錄中工作。

0

試試這個:

for /f "tokens=*" %%A in ('dir /b /s /O:D "C:\Source\cc*.txt"') do set "latest=%%A" copy "%latest%" "C:\Destination"

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"

雙方應該做

相關問題