[英]windows batch command to copy files from a list of folders to a destination without traversing through the subfolders
我需要遞歸瀏覽Windows目錄列表並將這些目錄中的txt文件復制到目標位置。我正在使用以下代碼:
@echo off
set TESTDIRS=RFP,New Audit
set TD=C:\Users\Audit
for %%d in (%TESTDIRS%) do call :process_testdir %%d
goto :eof
:process_testdir
set CTD=%TD%\%1
echo CTD: %CTD%
REM Echos the expected path
for /R %CTD% %%f in (*.txt) do (echo %%f
copy "%%f" "C:\Users\Audit\ImportantDocs)
REM Echos as expected
goto :eof
我面臨的問題:此批處理腳本遍歷父文件夾中存在的所有子文件夾,並將txt文件復制到目標位置,這不是我想要的。如果我指定文件夾名稱,則我只希望文本文件位於該特定文件夾將被復制到目標位置,而不是其子文件夾中存在的文件。
例如:名為“ RFP”的文件夾包含3個文本文件,還有一個名為“七月”的子文件夾,其中包含5個測試文件。我希望我的批處理腳本僅將“ RFP”文件夾中存在的3個文件復制到目標位置,而不是子文件夾“ July”中存在的5個文件
有幫助嗎??
更改
for /R %CTD% %%f in (*.txt) do (echo %%f
至
for %%f in ("%CTD%\*.txt") do (echo %%f
/r
是遞歸的。 您的目錄名似乎包含空格,因此您需要“使用引號將空格括起來的目錄名”,並使用%~1
刪除子程序中的引號,以刪除該引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.