- ベストアンサー
コマンドラインで特定フォルダのプロセスを一括停止させたい時は?
バッチファイルで悩んでいます。 c:\test\ のフォルダ内で稼働中のEXEやDLLを一括停止させるバッチ作成中です。 むかし、IBMのOS/2を使っていたころ、 unlock c:\test\*.exe と打てば良いコマンドツールがあって楽でした。 これと同じようなことをWindowsXPで実現したいのですが、 おすすめのWin32コマンドツールがありましたらアドバイスを頂けましたら幸いです。 どうぞよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
for %i in ("c:\temp\*.exe) do taskkill %i 上記コマンドで、c:\tempフォルダ内にある拡張子exeのファイルに対してtaskkillコマンドが実行できます。 バッチファイル内に記述するときは、%iを%%iに置き換えてください。
その他の回答 (3)
- m-take0220
- ベストアンサー率61% (480/785)
> for %i in ("c:\temp\*.exe) do taskkill %i ダブルクォートが抜けてました。 正しくは、 for %i in ("c:\temp\*.exe") do taskkill %i です。
お礼
このたびは手取り足取り、大変ご親切にご教授頂き、本当に感謝いたしております。 お礼記入が大変遅延いたしました非礼、どうかお許しください。
- m-take0220
- ベストアンサー率61% (480/785)
for文で特定フォルダ内の実行ファイルに対して、総当りでtaskkillコマンドを実行するといったことは可能ですが。
補足
引き続きありがとうございます。 taskkillの /IM スイッチ指定すれば、*.exe *.dllで一括できることまでは何とかわかってきました。 taskkillは、そのままでは全システムのタスクが表示されてしまうので、 >for文で特定フォルダ内の実行ファイルに対して という部分を、もう少し詳しく教えて下さいますでしょうか? (バッチを複数モジュール化してパイプやリダイレクトで特定フォルダを抽出する、という意味ですか?) 単純な繰り返しぐらいならば理解できるのですが、 複雑な条件分岐のアルゴリズムは全然自信ないレベルです。 (^^;)もしお願いできましたら、taskkillで特定フォルダを指定できるfor文の かんたんな例文を教えていただけましたら幸いです。 いろいろ厚かましくて汗顔の至りですが、何とか頑張りたいと思いますので よろしくお願いします。
- m-take0220
- ベストアンサー率61% (480/785)
taskkillコマンドでどうでしょうか。
補足
m-take0220さん、 早速にありがとうございます。 質問文が言葉足らずで済みませんでした。 Windows標準のtaskkillだと、あらかじめ稼働中のpid番号か実行ファイル名がわかっていないと駄目なんですよね? 実はこんな用途でのバッチを考えています。 c:\test\ ディレクトリ内に沢山あるEXEやDLLの中で、 実際どれが現在稼働中かわからない。 (プロセスチェッカーで目視によるPID確認、killやunlockのためにPIDやモジュール名特定をする手間を省きたい) ↓ どのEXEとDLLが稼働中で、どれが休んでいるか不明だけれど、 とにかく c:\test\ 内で稼働しているモジュールはロック解除したい。 ・・・というバッチを作ろうとしています。 プロセスID番号や、プロセス名が不明のまま、ワイルドカードで 特定ディレクトリ内の稼働を全部一括稼働停止(またはロック解除)できるコマンドラインツール を探しているところです。 こんな使い方ができるツールがありましたら、技術者のみなさまが ご愛用のおすすめを教えていただければ、と思い質問してみました。 何か良いものがありましたら、引き続き教えていただけますと幸いです。
お礼
入院で御礼が大変遅くなってしまい実に申し訳ございませんでした。 おかげさまで大変助かり問題解決できました。