質問: バッチを使用して特定の名前のすべてのファイルを検索して見つける方法は? 次のコマンドを実行しています。@echo off cls for /r d:\ %%a in (*) do if "%%~nxa"=="new.txt" set p=%%~dpnxa if defined p ( echo file found its path - %p% pause ) else ( echo file not found ! pause ) 最終結果として、ドライブ全体のnew.txtフォルダーとサブフォルダーでd:という名前のファイルを検索し、そのファイルnew.txtのフルパスを以下のような出力として表示します( new.txtのd:\folder\ファイルを想定)file found and its path - d:\folder\new.txt press any key to continue . . . ただし、問題は、異なるフォルダまたはサブフォルダのドライブnew.txtに同じ名前d:のファイルが複数ある場合、1つのパス出力しか表示されないことです。私の必要性は、以下の出力のように、ドライブnew.txt上の同じ名前d:のすべてのファイルパスを表示することです。期待される出力このような必要性、files found : 4 files paths : 1 - d:\folder\new.txt 2 - d:\new folder\new.txt 3 - d:\files\new.txt 4 - d:\folder\new\new.txt pls help..thx in advance。
回答: 同じ名前のすべてのファイルパスを表示したいnew.txtドライブd: 期待される出力: files found : 4 files paths : 1 - d:\folder\new.txt 2 - d:\new folder\new.txt 3 - d:\files\new.txt 4 - d:\folder\new\new.txt 次のバッチファイルを使用します。@echo off setlocal rem change to the correct directory cd /d d:\ rem count the files dir /b new.txt /s 2> nul | find "" /v /c > %temp%\count set /p _count=<%temp%\count rem cleanup del %temp%\count rem output the number of files echo files found : %_count% rem list the files echo files paths : dir /b new.txt /s endlocal windows cmdコマンドラインのa-zインデックス windows cmdコマンドの分類リスト del -1つ以上のファイルを削除します。 dir -ファイルとサブフォルダーのリストを表示します。 endlocal -バッチファイルで環境変更のローカリゼーションを終了します。あるバッチファイルから別のバッチファイルに変数を渡します。 find -ファイル内のテキスト文字列を検索し、見つかったすべての行を表示します。 set --cmd環境変数を表示、設定、または削除します。 setで行われた変更は、現在のcmdセッションの間のみ保持されます。 setlocal -バッチファイル内の環境変数の可視性を制御するオプションを設定します。