- ベストアンサー
バッチファイルで、リムーバルディスクを認知させ特定の拡張子のファイルを探す方法
質問です。 コマンドプロンプトを利用したバッチファイルの記載の方法で、「リムーバルディスク内の特定の拡張子(例:.exeファイル)を探し出し、発見されればそのファイルをテキストの書き出し、なければ発見されませんでしたとテキストに書き出す方法を探しています。 対象とするOSはWindowsXPです。 また、複数のリムーバルディスク(USBメモリが2つ接続されている場合など)へも対応させたいです。 皆さんのお力をお借りしたいと思っております。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Googleで調べたら wmic コマンドをつかって調べられそうでしたので作ってみました。 以下の例は、 exeファイルとtxtファイルを調べる例です。 下から5行目の *.exe *.txt の所を適宜修正して試してみてください。 検索結果はバッチファイルと同じ場所に list.txt として出力されます。 Windows XP Pro で動作確認しました。 :---------------------------------------------------- sample.bat echo off type NUL>list.txt for /F "tokens=1" %%d in ('wmic logicaldisk ^| find "リムーバブル"') do dir %%d>NUL 2>&1&&call :sub %%d for %%x in (list.txt) do if %%~zx EQU 0 echo リムーバブルディスクが見つかりませんでした>list.txt more list.txt exit /b :sub type NUL>tmp.txt for /R %1\ %%f in ( *.exe *.txt ) do echo %%f>>tmp.txt for %%x in (tmp.txt) do if %%~zx EQU 0 echo %1では発見されませんでした>tmp.txt copy /a list.txt+tmp.txt list.txt>NUL del tmp.txt goto :EOF
その他の回答 (1)
- notnot
- ベストアンサー率47% (4901/10362)
>また、複数のリムーバルディスク(USBメモリが2つ接続されている場合など)へも対応させたいです。 ドライブ名の内、現在どれがリムーバブルディスクになっているかを知りたいと言うことなら、コマンドプロンプトの機能では不可能です。 ドライブ名を固定で良いなら可能です。 cd /d E:\ dir /b /s *.exe >c:\path\list.txt 2>&1
お礼
大変参考になりました。 ありがとうございました。
お礼
大変参考になりました。 ありがとうございました。