我需要編寫一個批處理文件,以將最近更新的網絡驅動器中的文件夾而不是文件複製到本地計算機。批處理文件將FOLDER與最新的時間戳從網絡驅動器複製到本地
這是我的,但它找不到任何東西要複製,因爲我想複製一個文件夾,而不是一個文件。
for /f "delims=" %%a in ('dir S:\Development\NightlyBuilds /B /A-D /O-D') do copy "%%a" U:\PWJ
我需要編寫一個批處理文件,以將最近更新的網絡驅動器中的文件夾而不是文件複製到本地計算機。批處理文件將FOLDER與最新的時間戳從網絡驅動器複製到本地
這是我的,但它找不到任何東西要複製,因爲我想複製一個文件夾,而不是一個文件。
for /f "delims=" %%a in ('dir S:\Development\NightlyBuilds /B /A-D /O-D') do copy "%%a" U:\PWJ
相反的copy
,您可以使用xcopy
。使用/s
標誌遞歸複製。確保使用\
來終止PWJ文件夾,以指示目標是一個文件夾。您也可以使用robocopy。它更強大。您可以在robocopy /?
中查找其參數。
您正在使用FOR和DIR命令的錯誤選項,對最新到最舊的日期中的每個文件執行復制。
@ECHO OFF
(SET SrcDir=S:\Development\NightlyBuilds)
(SET DstDir=U:\PWJ)
IF NOT EXIST "%SrcDir%\" EXIT/B
IF NOT EXIST "U:\PWJ\" EXIT/B
IF /I NOT "%CD%"=="%SrcDir%" PushD "%SrcDir%"
FOR /F "DELIMS=" %%A IN ('DIR/B/AD-L/OD *') DO SET Latest="%%A"
ROBOCOPY %Latest% "%DstDir%\%Latest%" /E
EXIT/B