
ファイル ("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
ファイルの場所を渡すことができます。dir
explorer
start
これをマウントされたドライブごとに for ループに適応させるには、次の Stackoverflow の投稿を確認してください。
https://stackoverflow.com/questions/5709189/batch-script-to-find-drive-letter-of-a-mounted-device