- ベストアンサー
dos コマンドを vbsで行うには。
こんにちは。 --ip.bat の内容---- ipconfig >> C:\WINDOWS\デスクトップ\ip.txt ---------- ip.batのアイコンをクリックすると、テキストファイルが作成されますが、これと同じことをvbsでするにはどうゆう記述になりますでしょうか? もしくは、vbsでBATファイルを呼び出す方法は?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
WSH5.6にアップデートしてみてください。 (IEのバージョンは?)
その他の回答 (3)
- minimum
- ベストアンサー率46% (6/13)
vbsはほとんど使ったことがないのですが… No.1の方の方法でバッチが動くのならと思い Dim WSH Set WSH = CreateObject("WScript.Shell") WSH.Run("command /c ipconfig >> ip.txt") とか試してみたところ ちゃんと動いているようでしたよ
お礼
おはようございます。 動きますね。ありがとうございます。 この方法だと、バッチファイルを別に用意しなくても良さそうですね。 command /c の使い方についてさらに調べてみたいと思います。 #2の回答者の方へ、お答えの内容について理解を深めているところですのでコメントは少しまってください。スクリプトの切替とWshShell.Execの使い方を調べてます。
- FlossenEngel
- ベストアンサー率77% (132/170)
基本的には次のようなコードでできます。ただし事前にDOSプロンプトで cscript //h:cscript と打ってvbs(&js)の既定のスクリプトエンジンをcscriptにしておく必要があります。 Set WshShell = WScript.CreateObject("WScript.Shell") Set objExec = WshShell.Exec("コマンド") Do While objExec.Status = 0 WScript.Sleep(100) Loop sout = "" Do While Not objExec.StdOut.AtEndOfStream sout = sout & objExec.StdOut.ReadLine & Chr(13) & Chr(10) Loop MsgBox sout
お礼
回答ありがとうございます。 エラーになってしまいました。 行: 2 文字: 1 エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。: 'WshShell.Exec' コード: 800A01B6 ソース: Microsoft VBScript 実行時エラー Set objExec = WshShell.Exec("コマンド") の部分ですが、具体的にはどうなりますでしょうか? ”コマンド”の部分にipconfigと入れてみたのですが、エラーでした。 コマンドラインからの実行方法ですが、アイコンを右クリックして「DOSプロンプトで開く」を選択しても良いようですね。
- yanmaa
- ベストアンサー率45% (207/457)
とりあえずバッチファイルの実行なら簡単なので --vbsの中身----- Dim WSH Set WSH = CreateObject("WScript.Shell") WSH.Run("ip.bat") ---------------- では駄目ですか?
お礼
ありがとうございます。 その方法で起動できました。 あとは、直接DOSコマンドを利用できたらいいのですが・・ と言うのも自分のIPアドレスを取得してそれを表示させようとしてるのですが、なんか方法ありますでしょうか? 私がイメージしてるのは IP.vbsのアイコンをクリックしたら画面に 「あなたのIPアドレスは******です。」 とまずは表示させたいのです。
お礼
あたらしいバージョンが出てたのですね。さっそく5.5からwsh5.6にアップしました。 IEは5.5sp2のまま使用します。6.0に変えたほうがよいでしょうか。重たくなりそうなのでバージョンアップは控えてます。 前回教えていただいた、スクリプトを実行したところメッセージボックスには[OK]だけが表示されるようになり、エラーは一応解消しました。 ただIPアドレスが表示されないので原因をしらべてます。
補足
できました。!! ありがとうございました。 Set objExec = WshShell.Exec("コマンド") にてコマンドに入力する値を間違ったため [ok]ボタンしか表示されませんでした。 原因 ipconfigをip.config とピリオドを入れたため正しく動作しませんでした。コマンドの入力ミスのときはエラー表示しないようですね。気をつけます。 もしかしてエラーを表示する方法もあるのでしょうか?