プロが教える店舗&オフィスのセキュリティ対策術

バッチファイルで悩んでいます。
c:\test\
のフォルダ内で稼働中のEXEやDLLを一括停止させるバッチ作成中です。

むかし、IBMのOS/2を使っていたころ、
unlock c:\test\*.exe
と打てば良いコマンドツールがあって楽でした。

これと同じようなことをWindowsXPで実現したいのですが、
おすすめのWin32コマンドツールがありましたらアドバイスを頂けましたら幸いです。
どうぞよろしくお願いします。

A 回答 (4件)

taskkillコマンドでどうでしょうか。

この回答への補足

m-take0220さん、
早速にありがとうございます。

質問文が言葉足らずで済みませんでした。
Windows標準のtaskkillだと、あらかじめ稼働中のpid番号か実行ファイル名がわかっていないと駄目なんですよね?

実はこんな用途でのバッチを考えています。
c:\test\ ディレクトリ内に沢山あるEXEやDLLの中で、
実際どれが現在稼働中かわからない。
(プロセスチェッカーで目視によるPID確認、killやunlockのためにPIDやモジュール名特定をする手間を省きたい)

どのEXEとDLLが稼働中で、どれが休んでいるか不明だけれど、
とにかく c:\test\ 内で稼働しているモジュールはロック解除したい。
・・・というバッチを作ろうとしています。

プロセスID番号や、プロセス名が不明のまま、ワイルドカードで
特定ディレクトリ内の稼働を全部一括稼働停止(またはロック解除)できるコマンドラインツール
を探しているところです。

こんな使い方ができるツールがありましたら、技術者のみなさまが
ご愛用のおすすめを教えていただければ、と思い質問してみました。

何か良いものがありましたら、引き続き教えていただけますと幸いです。

補足日時:2010/03/07 13:32
    • good
    • 0

for文で特定フォルダ内の実行ファイルに対して、総当りでtaskkillコマンドを実行するといったことは可能ですが。

この回答への補足

引き続きありがとうございます。

taskkillの /IM スイッチ指定すれば、*.exe *.dllで一括できることまでは何とかわかってきました。

taskkillは、そのままでは全システムのタスクが表示されてしまうので、
>for文で特定フォルダ内の実行ファイルに対して
という部分を、もう少し詳しく教えて下さいますでしょうか?
(バッチを複数モジュール化してパイプやリダイレクトで特定フォルダを抽出する、という意味ですか?)

単純な繰り返しぐらいならば理解できるのですが、
複雑な条件分岐のアルゴリズムは全然自信ないレベルです。

(^^;)もしお願いできましたら、taskkillで特定フォルダを指定できるfor文の
かんたんな例文を教えていただけましたら幸いです。

いろいろ厚かましくて汗顔の至りですが、何とか頑張りたいと思いますので
よろしくお願いします。

補足日時:2010/03/07 18:13
    • good
    • 0

for %i in ("c:\temp\*.exe) do taskkill %i



上記コマンドで、c:\tempフォルダ内にある拡張子exeのファイルに対してtaskkillコマンドが実行できます。
バッチファイル内に記述するときは、%iを%%iに置き換えてください。
    • good
    • 1
この回答へのお礼

入院で御礼が大変遅くなってしまい実に申し訳ございませんでした。
おかげさまで大変助かり問題解決できました。

お礼日時:2010/10/14 00:45

> for %i in ("c:\temp\*.exe) do taskkill %i



ダブルクォートが抜けてました。
正しくは、

for %i in ("c:\temp\*.exe") do taskkill %i

です。
    • good
    • 0
この回答へのお礼

このたびは手取り足取り、大変ご親切にご教授頂き、本当に感謝いたしております。
お礼記入が大変遅延いたしました非礼、どうかお許しください。

お礼日時:2010/10/14 00:48

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