忙しい現代人の腰&肩のお悩み対策!

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

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

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

A 回答 (4件)

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

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

この回答への補足

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

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

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

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

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

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

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

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

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qコマンドライン上でファイルを終了させる方法について

コマンドライン上でアプリケーションを終了する方法についてお伺いします。

ファイル(エクセル、ワード等)を開く時、(たまに)以下の様にしてコマンドプロンプト上から開いています。

目的のファイルがあるディレクトリ\目的のファイル.xls(なり.docなり)

が、その開いたファイルをバー右上の「×」で閉じるのではなく、開いた時と同じ様にコマンドライン上で閉じる場合にはどう命令するべきなのでしょうか?

或いはそういう処理は用意されていないのでしょうか?
(試しに単純に「close 閉じたいファイル」と入力してみたら、(当然のように)エラーになりました。)

環境はWindowsXP SP1です。

調べれば分かりそうですが、なかなか見つかりませんでしたので、回答をお願いします。

Aベストアンサー

VBScript で Exec メソッドで起動したプロセスは
Terminate メソッドで終了させることができます。
ということで、コマンドライン直接ではなくて、間接的にはできると思います・(その場合スクリプトそういう指示を待つことになるので、質問者の望む動作ではないとは思いますが)
Terminate メソッドは WM_CLOSE メッセージを使ってプロセスを終了しようとします、これは、クローズボタンによる方法とほぼ同じと考えて良いと思いますが、これで終了できない場合には強制終了になってしまいます。

taskkill による方法も強制終了です。

そういう意味では、コマンドラインのコマンドとして、そういう処理は用意されていません。

必要ならそういうプログラムを作るようなことになるのかもしれません。

キーボードでというような意味なら
TABでアプリケーションを切り換えて
ALT+F4 で終了させることができます。

Qフォルダを開いて、閉じるのプログラムを教えてください

はじめまして。プログラムがあまり分からないのですが書き込みさせていただいています。
Windows2000 Serverのサーバーで、
ある特定のフォルダを”開くー数秒そのままー閉じる”という処理を自動で行いたいのです。
どなたかこのような処理をするコマンド(プログラム)ご存知でしょうか。
”開く”というコマンドは、
explorer "C:\xxxx\yyy
start c:\xxxx
と、いくつかあるようですが、指定のフォルダを閉じるコマンドがわかりません。

下記にも同様の質問があるのですが、指定のフォルダを閉じるという結果が得られていなかったので、書き込みさせていただいています。
http://oshiete1.goo.ne.jp/qa4024982.html

ご協力お願いします。

Aベストアンサー

回答番号:No.1 お礼へのアドバイスです。

mk-sanさんもお気づきと思いますが、対象のフォルダを開いて閉じるのが最善の対策かどうかは疑問ですね。

5000ファイルを溜め込む処理(どういう間隔で? 1日で?)を見直すのがよいかもしれませんし、また、目視で5000ファイル全てを確認するのではないでしょうから、フォルダを開かずに目的のファイルだけを直接開けばよいかもしれません。

やはりフォルダを開かざるを得ないとしても、キャッシュを有効にするためにはフォルダを開いて閉じなくてもスクリプトでフォルダ内を空読みすればよさそうな気がします。

一般論として、OSへの要求(本件の場合フォルダを開いて閉じる)は避けられるものなら避けた方がシステム全体の性能のためには良いと思います。

Qバッチ終了時にDOS窓を閉じるコマンド

自作バッチについて質問があるのですが、
バッチ終了時にDOSプロンプトを自動的に閉じる方法を教えて下さい。

以下の方法は知っているのですが↓
------------------------------------------------------------
バッチのプロパティ画面の「プログラム終了時にウィンドウを閉じる」を
チェックする
------------------------------------------------------------

上記のようなやり方ではなく、バッチファイルの中に直接コマンドを書いて
設定する方法を教えて下さい。

Aベストアンサー

バッチファイルでウィンドウを閉じるのはexitコマンドです。

exit

だけを記述したバッチファイルを作って実行してみると確認出来ます。

QDOSコマンドで、標準出力を出力しないようにするには?

Windowsのバッチファイルでコマンドを実行する際、標準出力をディスプレイに表示したくないのですが、どのようにするのが、一般的なのでしょうか?
CDで実行するので、ファイルに出力はしたくありません。
UNIXとかだと、nullにパイプするようなのですが…。

Aベストアンサー

>UNIXとかだと、nullにパイプするようなのですが…。

リダイレクトですね。

同様です。
標準出力だけなら「c:\> command > nul」
エラー出力もなら「c:\> command > nul 2>&1」

Qファイルをロックしているプロセスを特定する方法

Windows Vistaを使用しています。
あるファイルを削除しようとしたところ、

 別のプログラムがこのファイルを開いているので、操作を完了できません

というエラーメッセージが出ます。
どのプロセスがこのファイルを操作しているのかを知りたいのですが、どうすればよいでしょうか?
おそらく、何かのプロセスがこのファイルをロックしているものと考えています。

Windowsの標準機能で解決できるならその方法を、別のフリーソフトを利用すればわかるのならその方法を教えてください。

どのプロセスかが分かれば、そのプロセスを強制終了させればファイルの削除が行えると考えています。

よろしくお願いします。

Aベストアンサー

Unlockerというフリーソフトをお試しください。
http://cowscorpion.com/file/Unlocker.html


人気Q&Aランキング