2017-07-04 4 views
0

私は再帰的にWindowsのディレクトリのリストを通過し、これらのディレクトリ内のtxtファイルをコピー先に移動する必要があります。コード:私は直面していますwindowsのバッチコマンドは、フォルダのリストから宛先にサブフォルダを経由せずにファイルをコピーする

@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 

問題:このバッチスクリプトは、私がフォルダ名を指定しwant.Ifものではありませんこれは、親フォルダと先にコピーTXTファイルを内に存在するすべてのサブフォルダを横断します私はその特定のフォルダ内のテキストファイルだけをそのサブフォルダにあるファイルではなく、コピー先にコピーしたいと考えています。
例: "RFP"という名前のフォルダには、3つのテキストファイルと5つのテストファイルを含む "July"という名前のサブフォルダが含まれています。バッチスクリプトは、 "RFP"フォルダにある3つのファイルのみをコピー先にサブフォルダ "July"にある5つのファイルではありません。

ヘルプがありますか?

答えて

1

変更

for /R %CTD% %%f in (*.txt) do (echo %%f 

for %%f in ("%CTD%\*.txt") do (echo %%f 

/rは再帰的です。あなたのディレクトリ名には空白が含まれているように見えるので、囲み引用符を削除する %~1を使って、 "引用符で囲んだディレクトリ名を囲んで"サブルーチンの引用符を削除する必要があります。

+0

ありがとうございます。これは私のために働いています。Windowsのバッチスクリプトに非常に新しいので、私は本当にばかげているような質問をします。 – UserA

関連する問題