ディレクトリを見つけて、Windowsでcmdを使用して開く

ディレクトリを見つけて、Windowsでcmdを使用して開く

ファイル ("example.txt") のディレクトリを見つけて、ファイルが見つかったら cmd (または vb) でディレクトリ ("c:\example\sub\" など) を開く方法はありますか? もちろん、"C:\" だけでなくすべてのパーティションを検索します。

答え1

各ドライブのルートから次のコマンドを実行します。

for /f "delims=" %a in ('dir /s /b example.txt') do explorer %~dpa

上記のコマンドは、「example.txt」という名前のすべてのファイルを検索し、それらのファイルが保存されているディレクトリでエクスプローラーを実行します。

バッチ ファイルを使用する場合は、それぞれを次%のように置き換える必要があります%%

for /f "delims=" %%a in ('dir /s /b example.txt') do explorer %%~dpa

ドライブのリストを取得するには:

for /f "skip=1 delims=" %a in ('wmic logicaldisk get caption') do @echo %a

バッチファイルの場合:

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do @echo %%a

すべてをバッチファイルにまとめます。

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
    cd %%a
    cd \
    for /f "delims=" %%b in ('dir /s /b example.txt') do explorer %%~dpb
)

最初の一致後に停止するには:

for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
    cd %%a
    cd \
    for /f "delims=" %%b in ('dir /s /b example.txt') do (
        explorer %%~dpb
        exit
    )
)

答え2

これにより、現在の作業ディレクトリとすべてのサブディレクトリ内の指定された拡張子を持つすべてのファイルが検索されます。

dir *.cpp *.h *.java /b/s

これは「pyth」で始まるファイルに対して実行されます

dir pyth*

この例を拡張することができます。

ファイルの場所(つまりフォルダ)を開くには、cd結果に次のいずれかを入力します。

explorer .

または

start .

を使用したくない場合は、またはコマンドにcdファイルの場所を渡すことができます。direxplorerstart

これをマウントされたドライブごとに for ループに適応させるには、次の Stackoverflow の投稿を確認してください。

https://stackoverflow.com/questions/5709189/batch-script-to-find-drive-letter-of-a-mounted-device

関連情報