2017-04-05 15 views
0

我正在嘗試創建批處理腳本文件以幫助我的工作組中的管理助理。我們稱他爲約翰。使用用戶提示符創建批處理腳本文件xcopy

John每天從包含建築圖紙的客戶處收到許多CD作爲PDF。每張CD都是唯一的。 John爲其分配一個應用程序編號,並在應用程序編號作爲文件夾名稱的網絡驅動器上創建一個新文件夾。 John然後將CD上的所有文件複製到新創建的文件夾名稱中。他重複他收到的每張CD的這一過程。

我沒有任何編程經驗,所以我希望你能借我一把。這是我在下面寫的,但它不起作用。我收到「內存不足」錯誤。基於用戶輸入的新文件夾名稱在網絡驅動器路徑上正確創建,但它是空的。

感謝您的幫助!通知你,我運行Windows 7 64位

@echo off 
echo Welcome team member! 
pause 
set /p anumber=Type in the Application Number then press Enter key when done. 
mkdir "S:\ARCH\Active Forms and Files\Submittal Floor Plans\%anumber%\" 
:: e:\ is the CD drive path 
set source=e:\ 
:: S:\ is a network drive 
set destination="S:\ARCH\Active Forms and Files\Submittal Floor Plans\%anumber%\" 
xcopy %source%\* %destination%\* /s /e /l /h /i >nul 
pause 
exit 
+0

的'xcopy'命令是不會,除非你刪除'/ L'選項複製任何東西 - 看'XCOPY /'... – aschipfl

+0

啊,我現在意識到了。 –

+0

如果我想將CD的內容與目標文件夾進行比較,請進行一種錯誤檢查以確保所有內容都已正確複製,如何通過批處理文件完成此操作?謝謝 –

回答

1

你都設置可變%source%e:\這是在%source%\*使用時,導致一個無效的目錄中讀取解釋爲E:\\*。變量%destination%也一樣。

更新後的腳本:

@echo off 
set "networkFolder=S:\ARCH\Active Forms and Files\Submittal Floor Plans" 
set "CDDrive=e:" 

echo Welcome team member! 
:input 
    set "applicationNo=" 
    set /p "applicationNo=Enter the Application Number and press ENTER: " 
    if not defined applicationNo goto :input 
    set "newLocation=%networkFolder%\%applicationNo%" 
:actions 
    md "%newLocation%" 
    xcopy %CDDrive%\* "%newLocation%" /s /e /i /h>nul 

echo Completed! 
pause 
+0

山姆,這太神奇了!我無法感謝你的幫助!你爲我的朋友節省了無數小時的單調任務。你讓我很快樂。我很開心!順便說一句,我錯誤地使用了xcopy/l開關,所以沒有文件被複制。一旦我刪除了/ l開關,一切都很好地複製。 –

+1

'E:\\'實際上不是無效的,並且指向'E:'的根目錄,就像'E:\'也是...... – aschipfl

+0

很高興知道「E:\\」。另外,感謝您清理我的帖子aschipfl。它讀得更清楚。 :) –