2012-10-16 140 views
0

這個cmd命令給了我後面的文件。Xcopy變量聲明

dir /b /a-d "\\teams1.sharepoint.xx.com\teams\Contractcenter_Volume Direct Contracts\Shared Documents\"|findstr /b "CONTRACT" >"C:\AIRCR_CHANGE1_PATSY\aaafiles.tmp"

現在我怎麼養活這個文件名到XCOPY放在一個漂亮的批處理文件?

XCOPY「源文件路徑」,「目標文件路徑」

我需要打開文件,讀取文件名並存儲爲變量,然後做xocpy「變量源」,「目標文件路徑」

回答

0

您可以使用FOR命令來讀取文件並將內容存儲在變量中,然後將該變量用作源或目標路徑。

E.g.

FOR /F %%I in (C:\AIRCR_CHANGE1_PATSY\aaafiles.tmp) DO xcopy %%I destinationPath 

需要注意的是上面的命令thie將解析您的臨時文件的每一行,返回的第一個標記爲%%I。標記的默認分隔符是空白字符(空格或製表符)。如果源/目標文件的路徑可能包含空格,則必須指定一個不同的分隔符,例如,

FOR /F "delims=;" %%I in (C:\AIRCR_CHANGE1_PATSY\aaafiles.tmp) DO xcopy %%I destinationPath 

FOR命令的幫助應該幫助你調整,以滿足您的需求的命令。

1

重寫答案 - 原來是錯

我不認爲需要一個臨時文件,同時,我也不認爲有必要FINDSTR。您應該可以直接使用XCOPY:

xcopy "\teams1.sharepoint.xx.com\teams\Contractcenter_Volume Direct Contracts\Shared Documents\contract*" "destinationFolder" 
+0

'* contract *',也許? –

+0

此外,根目錄文件夾('\\ teams1.sharepoint.xx.com \ teams \ Contractcenter_Volume Direct Contracts \ Shared Documents \「'one)應該在'/ r'後指定。 –

+0

@AndriyM - '* contract *'?不,因爲OP的代碼使用FINDSTR/B選項。包含FOR/R之後的根路徑?不完全是因爲不應該進行遞歸搜索。我不知道爲什麼我介紹/ R。但是路徑肯定應該包含在IN()子句中。但是現在我意識到沒有遞歸,整個事情被一個簡單的XCOPY所取代。謝謝。 – dbenham