VBSでコマンドプロンプトを立ち上げて更にコマンドを実行する
最初はバッチファイル(.bat)で普通にできると思っていたのだが、2つ問題があった。
ひとつめは、コマンドプロンプトを画面最大化して立ち上げたいという点。
バッチファイルの中で
start /MAX
で最大化ウインドウは立ち上がる。しかし立ち上がったウィンドウ内でコマンドを実行をさせると、別プロセス(別ウィンドウ)が開いてしまう。
思った通りにできなかった。やりようはあったのかもしれないが解決できず。
ふたつめは、最大化をあきらめるとしてバッチファイルの実行後にウィンドウを開いたままにしておきたいということ。
これは pause コマンドでできるのだが、
「続行するには何かキーを押してください・・・」が気になる。実際何かを押すと消えてしまうのでこの方法は取りたくない。
ということで、VBSを選択した。
' 変数宣言
Dim objShell
' シェルオブジェクト作成、変数へ代入
Set objShell = CreateObject("WScript.Shell")
' コマンド実行
objShell.Run "cmd.exe /k cd C:\Users\ユーザ名\Documents && dir", 3, True
Runメソッドの第2引数 “3” は最大化の指定。
これでコマンドプロンプトを最大化起動し、任意のコマンドをそのウィンドウ上で実行し、更にウィンドウを閉じずにそのままコマンドを受け付けられる目的が達成された。