2016-05-13 95 views
1

我想使用批處理文件複製一些文件。不能使用批量複製文件

這不起作用:

@echo off 
for /R "C:\Users\User\Documents\Folder FolderA FolderB\Folder\Folder FolderC FolderD\Folder\Folder" %%f in (*.inc) do copy %%f /R "\\10.1.10.156\c\Folder1\Folder 2\Folder3" 

這工作:

@echo off 
for /R "C:\Users\User\Documents" %%f in (*.inc) do copy %%f "\\10.1.10.156\c\Folder1\Folder 2\Folder3" 

我也換成"C:\Users\User\Documents\Folder FolderA FolderB\Folder\Folder FolderC FolderD\Folder\Folder"%cd%,我得到了一個錯誤說FolderA was unexpected at this time所以我覺得像這樣具有與辦名爲Folder FolderA FolderB的文件夾中有空格,但我無法使其正常工作。

+1

你可以嘗試'做副本'%% f「...' –

回答

1

首先,您在複製聲明中有一個不應存在的/R。其次,正如@Dennis van Gils所建議的那樣,您需要在copy聲明中對%%f變量加上引號。這裏的原因:

在此命令:

for /R "C:\a folder with\spaces\" %%f in (*.inc) do copy %%f "\\destination\folder" 

變量%%f擴展到C:\a folder with\spaces\filename.inc。所以,當copy嘗試使用這個它認爲:

copy C:\a folder 

--and那麼扼流圈因爲C:\a不是有效的源和folder是不是一個有效的目標。所以,如果你把引號的變量是這樣的:

rem ---------------------quotes around this variable-----VVVVV 
for /R "C:\a folder with\spaces\" %%f in (*.inc) do copy "%%f" "\\destination\folder" 

將擴大到:

copy "C:\a folder with\spaces\filename.inc" "\\destination\folder" 

和你希望它應該工作。

+0

明白了!謝謝。 –