プロが教えるわが家の防犯対策術!

いつもお世話になってます。

VBScriptでコマンドプロンプトのコマンドを呼び出すとき、
WshShell.RunやWshShell.ExecよりDOSコマンドを発行すると思いますが、
cmd /c を頭につけた場合と、つけない場合のどちらでも実行できると思いますが、何が違うのでしょうか。

dirコマンドについてはcmd /cがないと実行できないようでしたが、 EVENTCREATEコマンドはどちらでも実行でき、cmd /cなしで実行できるものとできないものがあるようだということは確認しています。

しかし、どちらでも実行できる場合については何が違うのか、どちらがよいのかなどがよく分かりませんでした。

よろしくお願いします。

A 回答 (3件)

シェル(cmd.exe)に内蔵されているかどうかです。



dirコマンドはシェル(cmd.exe)に内蔵されているため、cmd.exe経由でなければ実行できませんが、
eventcreateは.exeで存在するため、cmd.exe経由でなくても実行可能です。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

シェルに内蔵されているかどうかなのですね。
シェルについて少し調べてみます。

お礼日時:2010/04/19 21:59

> cmd /c を頭につけた場合と、つけない場合のどちらでも実行できると思いますが、


> 何が違うのでしょうか。
CMD.exeの/Cスイッチは、指定したコマンドを実行した後に、CMD.exeを終了する設定です。
/Cスイッチを付けない場合は、コマンド実行後にCMD.exeが終了しませんが、
記載のとおり、DIRなど起動しないコマンドも存在します。

DIRなどを指定したい場合は、/Kスイッチを設定する事で起動します。

cmd.exe /K DIR [ENTER]



> しかし、どちらでも実行できる場合については何が違うのか
/Cスイッチを記載していない場合、指定したコマンドを実行する度に、新しいDOS窓が開きます。
要は、実行する度に開かれたDOS窓は、JOB(BAT)が終了しても、開きっぱなしとなると言う事です。

JOB(BAT)をオペレータが手動で起動するのであれば、気になりませんが、自動化であれば、DOS窓の開きっぱなしは問題になるのでは無いですか?
    • good
    • 0

No2です。



すいません、質問者さまの意図が違いましたね。
/Cスイッチを指定した時としない時の挙動と勘違いしてしまいました。
No2の回答はスルーしてください
    • good
    • 0
この回答へのお礼

質問の意図とは違いましたが参考になりました。

ありがとうございました。

お礼日時:2010/04/19 21:51

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