2016-10-07 138 views
-1

我是初學者,需要在Windows中複製文件的幫助。我在不同的子文件夾中有xlsx文件。我想要複製的文件的名稱包含(但不限於)"Reporting Assessment Tool"。我想複製包含該名稱的所有文件,並將它們帶到平面源目標(不需要文件夾結構)。批處理:將文件從具有特定文件名的不同子文件夾複製到其他目標

來源:C:\用戶\用戶名\桌面\上傳
目的地:C:\用戶\源\桌面\工具

到目前爲止,我曾嘗試以下

cd /D "c:\users\jubalkheimer\desktop\upload" @for /r %%a in ("*Reporting Assessment Tool.xlsx") do ( 
copy "%%a" "c:\users\jubalkheimer\desktop\tool\"%%~a") 

我沒有收到錯誤消息,但文件不會被複制....

你能幫忙嗎? 非常感謝

+0

這不是一個免費的代碼寫作服務,所以請您共享您嘗試過的內容,並準確描述您卡在哪裏!在這裏學習[如何提問](http://stackoverflow.com/help/now-to-ask)! – aschipfl

+0

謝謝 - 添加代碼。在原始評論中 – Julia

+0

在'* Reporting Assessment Tool.xlsx'周圍添加引號,並用'「%%〜a」替換「%% a」';否則白色空間的干擾... – aschipfl

回答

0

此任務的批處理文件代碼可能是:

@echo off 
for /R "%USERPROFILE%\desktop\upload" %%I in ("*Reporting Assessment Tool.xlsx") do (
    copy /-Y "%%I" "%USERPROFILE%\desktop\tool\%%~nxI" 
) 

這可以用在批處理文件中的一個命令行也做:

@for /R "%USERPROFILE%\desktop\upload" %%I in ("*Reporting Assessment Tool.xlsx") do @copy /-Y "%%I" "%USERPROFILE%\desktop\tool\%%~nxI" 

區分大小寫的環變量I在每個循環中保持具有完整路徑的文件的名稱,而不在指定目錄或該目錄的任何子目錄中找到與文件名稱模式*Reporting Assessment Tool.xlsx匹配的雙引號。

要複製找到的文件並提示批處理文件的用戶在目標目錄中覆蓋已存在的具有相同名稱的文件,必須將指定給循環變量的字符串指定爲第一個參數,並將第二個參數指定爲目標路徑以及找到的文件的文件名和文件擴展名,不含路徑。這解釋了COPY命令行中"%%I"(文件名的擴展名和完整路徑用雙引號括起來)和"Target Path\%%~nxI"(只是文件名和文件擴展名,固定目標路徑用雙引號括起來)的用法。

爲了解所使用的命令及其工作方式,請打開命令提示符窗口,在其中執行以下命令,並仔細閱讀爲每個命令顯示的所有幫助頁面。

  • copy /?
  • echo /?
  • for /?

%USERPROFILE%引用預定義的環境變量USERPROFILE保持該路徑來分析當前用戶帳戶的目錄。

在沒有使用Windows資源管理器的批處理文件的情況下執行此任務將非常容易。

  1. 導航到文件夾中%USERPROFILE%\desktop\upload
  2. 運行文件夾爲*Reporting Assessment Tool.xlsx
    Windows資源管理器搜索自動搜索該文件夾和所有子文件夾匹配該文件名模式的文件遞歸。
  3. 選擇所有找到的文件與Ctrl + A(全選)。
  4. 準備複製所有選定的文件與Ctrl + C(複製)。
  5. 導航到文件夾%USERPROFILE%\desktop\tool
  6. 粘貼用於與Ctrl + V鍵(粘貼),這導致現在複製文件複製製得的文件。
+0

Merci!有效。非常感謝您的解釋! – Julia

相關問題