• ベストアンサー

コマンドプロンプトについて

お世話になります。 コマンドプロンプトでの起動方法は分かるのですが、 Excel終了方法を知りたいです。下記の様に記述して うまく行きませんでした。 また、今Excelが開かれているなら、終了する。と言う 記述方法もご教示頂きたく宜しくお願い致します。           記 taskkill / fi "excel.exe"-

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.4

#1、3 です。 >TASKLISTはXP-Professional 限定と書かれていました。 >XP-Home Edition では利用できませんので >ご注意ください。 と言う事でした。 >XP-Home Edition でも可能な方法は ない物なのでしょうか。 ?? そもそもHomeエディションだとtaskkillも無いはずですよね? それとも、taskkillだけ動くようになっているのでしょうか? (だとしたら、同様にtasklistも入れられると思いますが) 他の方法で、かつ、バッチ、コマンドラインから実行する事をお考えと言う事であれば、 ・WSH(VBScript, JScript)を使用する ・PowerShellを使用する ・プロセス関連のコマンドラインツールを使用する ・Windows移植のUnixコマンド群を使用する のいずれかですね。 Windows 2000: スクリプト天国 http://msdn.microsoft.com/ja-jp/library/ms974557.aspx ↑ Windows2000向けのVBScriptの例ですが、このページの「この記事のソース コードをダウンロードする」をダウンロードして解凍し、中の kill.vbs と ps.vbs を使用すれば同様の事ができると思います。 (試していません) PowerShellのkillコマンド、psコマンドを使っても同様の事ができます。XP Homeでも使えるはずです。 (こちらは、そもそも私自身が詳しくない) または、こちらのPsToolsを使っても同様の事ができると思います。 (試していません) ↓ PsList http://technet.microsoft.com/en-us/sysinternals/bb896682 PsKill http://technet.microsoft.com/en-us/sysinternals/bb896683 VBScriptやPowerShellのファイルをバッチから呼び出すワンクッションを考えるくらいなら、後者のPsToolsを使った方が楽でしょうね。 または、Subsystem for UNIX-based Applications(SUA) (※XPだと、Windows Services for UNIXかな?)や Cygwin など Unixコマンド集を使う とか。 いずれにせよ、Homeエディションを使うなら余計な一仕事、二仕事が必要になってきます。

その他の回答 (4)

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.5

PowerShellで ps excel | kill でいけます。

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.3

#1 です。 >下記の○○○○○○○○○○○○の部分を >現在「excel」が起動している状態の時 >と言う条件を書きたいのですが、 >どうやって記述したら良いのか分かりません。 なるほど、イメージつかめました。 findstr(Windowsのgrep風コマンド)の検索結果が合致すると、DOSのERRORLEVELに0が、合致しないと1が返ります。 つまり、tasklistコマンドの結果をgrepすれば、「EXCELが起動しているかどうか」がわかります。 こんな感じです。 今、自分の環境で試してみましたが、test.batを実行する度に、Excelが開いたり閉じたりします。 (で、要件としては、よろしいんですよね?) test.bat ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ @echo off REM tasklistからEXCELが起動しているか、grepで確認する tasklist | findstr /i excel.exe REM ERRORLEVEL=0(Excel起動中)ならkill、1(未起動)ならstart if "%ERRORLEVEL%" == "0" ( taskkill /im excel.exe ) else ( start excel.exe )

miruchoko
質問者

お礼

ご回答頂き有難うございます。 コードをそのままコピー&ペーストして 実行して見た所何故かうまく行かず(何も動かない)、 ネットで調べていたところ、 TASKLISTはXP-Professional 限定と 書かれていました。 XP-Home Edition では利用できませんので ご注意ください。 と言う事でした。 XP-Home Edition でも可能な方法は ない物なのでしょうか。 しつこい様で申し訳ございませんが、 宜しくお願い致します。

回答No.2

exitでは??

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

>Excel終了方法 と >今Excelが開かれているなら、終了する の意味合いの違いがわからないですが、とにかく Excel を終了するなら taskkill /im excel.exe です。 fi はフィルタのパラメータですから、使い方が違います。 使う場合は以下のようにします。 例)先頭がaaaとなっているプロセスを全て終了 taskkill /fi "imagename eq aaa*" 但し、フィルタはシステム誤作動の元となる可能性があるので、使い慣れている場合を除き、お薦めしません。 それと、ご質問に書かれている taskkill / fi のようにスラッシュ(/)とパラメータを離してはいけません。 エラーになります。

miruchoko
質問者

お礼

有難うございます。 大変参考になりました。 下記の○○○○○○○○○○○○の部分を 現在「excel」が起動している状態の時 と言う条件を書きたいのですが、 どうやって記述したら良いのか分かりません。 大変厚かましい様ですが、ご教示頂けます様、 宜しくお願い致します。         記 if ○○○○○○○○○○○○ ( taskkill /im excel.exe ) else ( start excel.exe )