2017-12-01 16 views
1
set path="D:\Work,D:\workin,D:\files" 
set files ="txt,html,xml" 

拡張子がfilesのファイルをpathに定義されているディレクトリで検索し、名前をファイルに書き込む方法はありますか?ここで 複数のディレクトリで特定の拡張子のファイルを検索するにはどうすればよいですか?

は、私はすでに試みているものです:

set "list=list.txt" 
pause 

pushd "%~dp0" 
>"%list%" (
for /f "delims=" %%i in ('2^>nul dir /ad /b') do (
    pushd "%%i" 
    for /f "delims=" %%j in ('2^>nul dir /a-d /b *.txt *.html') do (
     echo %%j& >nul 2>&1 copy/y "%%j" .. 
    ) 
    popd 
) 
) 
popd 
+0

これまでに試したことはありますか? – cowCrazy

+0

コマンドラインで「set var = text」を使用した後、[echo%var%で文字列が出力されないのはなぜですか?](https://stackoverflow.com/a/26388460/3074564) ['...'が内部または外部のコマンド、実行可能なプログラムまたはバッチファイルとして認識されない理由は何ですか?](https://stackoverflow.com/a/41461002/3074564)あなたはあなたが持っているものを知っています最初の2つの投稿された行にすでに間違っています。 – Mofi

+0

私はあなたが変数 'PATH'を決して命名しないことを強く勧めます。これはすでにシステム変数で、そのセッションで変更されているため、コマンドの一部が正しく実行されない可能性があります。 – Squashman

答えて

1

あなたが標準FORコマンドを使用して、このプロセスを簡素化することができるはずです。

@Echo off 

>"FileList.log" (
for %%G in (D:\Work,D:\workin,D:\files) do (
    pushd "%%~G" 
    for %%H in (*.xml *.txt *.html) do (
     echo %%~H 
     copy /y "%%~H" .. 
    ) 
    popd 
) 
) 
+0

サブフォルダで検索するには? – Vaaassaa

+0

@PŖôtetein-、cmdプロンプトを開き、 'FOR'コマンドのヘルプを読んでください。 cmdプロンプトで、「FOR /?」と入力します。コードには2つの文字を追加するだけです。 – Squashman

関連する問題