アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問です。
コマンドプロンプトを利用したバッチファイルの記載の方法で、「リムーバルディスク内の特定の拡張子(例:.exeファイル)を探し出し、発見されればそのファイルをテキストの書き出し、なければ発見されませんでしたとテキストに書き出す方法を探しています。
対象とするOSはWindowsXPです。
また、複数のリムーバルディスク(USBメモリが2つ接続されている場合など)へも対応させたいです。
皆さんのお力をお借りしたいと思っております。
よろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

大変参考になりました。
ありがとうございました。

お礼日時:2008/11/23 20:13

>また、複数のリムーバルディスク(USBメモリが2つ接続されている場合など)へも対応させたいです。



ドライブ名の内、現在どれがリムーバブルディスクになっているかを知りたいと言うことなら、コマンドプロンプトの機能では不可能です。
ドライブ名を固定で良いなら可能です。

cd /d E:\
dir /b /s *.exe >c:\path\list.txt 2>&1
    • good
    • 0
この回答へのお礼

大変参考になりました。
ありがとうございました。

お礼日時:2008/11/23 20:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!