• ベストアンサー

WindowsHostScript(.vbs)?をバッチファイルから操作する

バッチファイルの本を読んでいるのですが、バッチファイルの中から「WindowsHostScriptを呼び出す」という項目があります。それについての本を本屋で探したのですが、見当たりません。 1.本によるとWindowshostScriptは拡張子が「.vbs」とかいてあります。VBScriptも拡張子が「.vbs」です。要するに、WindowsHostScriptとはVBScriptのことなんでしょうか? 2.また、僕は、VBScriptはJavaScriptみたいにWEBで使うものだと思っていましたが、コマンドラインでも使えるものなんでしょうか? 以上2点、分かる方、よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

1. >WindowshostScriptは拡張子が「.vbs」 WindowsScriptHostは、どちらかというと、拡張子はWSFです。 >WindowsHostScriptとはVBScriptのことなんでしょうか? WindowsScriptHostは、WindowsScriptingHost テクノロジを使ったもので、要するにスクリプト言語を使ってWindowsを制御するというような意味合いになります。 以下MSのドキュメントを引用 『Microsoftョ Windowsョ Script Host (WSH) は、WSH 互換のスクリプト エンジンで使用できる言語に依存しないスクリプト ホストです。』 引用ここまで。 つまり、そうした取り決めにしたがっているスクリプトが使える仕組みというようなものです。 VBScriptは、IEがインストールされている、あるいはXPであれば、標準で使えるWindowsHostScriptとして使えるスクリプトの1つです。 他にも標準でJScriptが使えます。 また、Perl や Ruby などのスクリプトもそれぞれWindowsScriptingHostに対応しているソフトをインストールすることで使えるようになります。 2. VBScript は、IEで(スクリプトとして)も使うことができますが、 コマンドラインでも使うことができます。 JScript(IEでjavascriptとしても使える)もコマンドラインで使えます。(拡張子はjs) ちなみに、 wsfとして記述すると、それぞれのスクリプトを混在して使用したりもできます。

kamkamkam3
質問者

お礼

大変、詳しいご説明ありがとうございます。BLUEPIXYさまには、かなりお世話になっております(;^^。 WindowsScriptHostがどういうものかハッキリわかりました。色々なスクリプトを使用できるWindowsを操作するためのプログラムの一種なんですね。すごくよくわかりました。 以前、システム環境変数PATHを設定していたとき、「PATHEXT」の欄にVBSやJSがあったので、不思議に思っていたのですが、やっと理由がわかりました。 wsfで色々なスクリプトを混在させることができるということ、PerlやRubyも使えるということで、期待感が膨らんでいます。私は、Perlを勉強中なものですから。 非常に参考になりました。どうもありがとうございます。

その他の回答 (1)

  • herencia
  • ベストアンサー率56% (120/211)
回答No.1

Windows Script Hostですね。 1.Windows Script Hostは(WSH)、Windowsが提供している機能で、スクリプトによって様々な処理を行わせることができるものです。VBScriptが一般的ですがJScriptなども利用できます。 2.VBScriptやJScriptは元々WEBで使うために考えられた技術ですが、WSHでも利用できるようになっています。コマンドラインから「cscript ***.vbs」として実行することができます。 参考URLが詳しいので参考になると思います。

参考URL:
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_02.html
kamkamkam3
質問者

お礼

早速の詳しいご回答ありがとうございました。 WindowsScriptHostとは、VBScriptやJScriptなどマイクロソフトが提供しているScriptを動作させるプログラム(Host)なんですね。僕は、VBScriptやJScriptの一種だと思っていました。 そういえば、JScriptでWindowsの細かい動作ができるという本も売っていました。納得です。 コマンドラインからの方法を教えていただいてとても嬉しいです。僕はプログラムを勉強中なんですが、これでもっと幅が広がるかと思います。 参考URLも見させていただきました。とても役に立ちそうです。 非常に分かりやすい説明でした。どうもありがとうございます。大変、感謝します。

関連するQ&A

  • バッチファイル

    VBScriptについての質問です。 先日、バッチファイルとVBSを使ってプリンター削除をするという課題が出されました。 自分は、バッチファイルでrundll32 printui.dll,PrintUIEntryを使ってプリンター削除の定義をしましたが、VBSファイルの方で何を書けば良いか分からなくなってしまいました。 恐らくVBSファイル内で、バッチファイルを起動させるための処理を書かなくてはいけないと思うのですが、どのような書き方をすれば良いのか分かりません。 一例ということでも良いので教えていただければ幸いです。 長々とすみません。

  • VBSでバッチパラメーターと同等のものは

    コマンドプロンプトの「%1」はバッチファイル実行時に付加された最初のパラメータを表します。 VBSでも同じような働きをさせたいのですが書き方がわかりません。 どうすればよいでしょうか。 なお、VBSの実行方法はあるVBSファイルに処理したいファイルをD&Dする事になります。

  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • バッチ操作でファイルを開くには

    ファイルをマウスでクリックして開かせるように、バッチでファイルオープンさせたいのですが、どうしたらいいでしょうか?open等使用してもエラーが出ます。内部コマンド外部コマンドに認識されていませんと・・ *ファイルの名前はいつもイレギュラーなのですが、開くファイルの拡張子は同じものです。

  • バッチファイルの文字列をVBSに渡すには

    バッチファイルからVBSを実行しています。 echo msgbox "123" >> %TEMP%\abc.vbs cscript //NoLogo %TEMP%\abc.vbs >%TEMP%\abc.cmd del %TEMP%\abc.vbs call %TEMP%\abc.cmd del %TEMP%\abc.cmd このバッチを実行すると 123 が表示されます。 "123" の部分を変数として引渡したいのです。 set a=123 echo msgbox &a& >> %TEMP%\abc.vbs このようにして実行すると ’コマンドの構文が誤っています。’ となります。 よろしくお願いします。

  • UNIXshellをWINDOWSバッチファイルへ

    UNIXshellをWINDOWSで動かすために、バッチファイルを作成しております。UNIXコマンド→DOSコマンドへの変換で、なかなか対応するコマンドがありません…。商用なのでなかなかフリーのツールが使用できないので、VBscriptで対応できないものは組もうと思っているのですが、VBScriptの経験がありません…。お勧めの本がありましたら、ご教授頂きたいので、よろしくお願い致します。

  • 開いてるファイル(エクセル等)をバッチかVBScript自動的に保存す

    開いてるファイル(エクセル等)をバッチかVBScript自動的に保存する方法は? 幾つかのアプリを終了させ、その際エクセルを終了するときに、 開いているエクセルファイルを全部自動的に保存させて終了させたいと思います。 バッチでは保存のコマンドは無いようで、VBSで終わらせ方は分かったのですが、その前の保存がわかりません。ちなみにBookのタイトルはそのときにより変わります。あと今回はエクセルのマクロはつかいたくないので、VBSで使えるのでお願いします。

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • VBSの拡張子

    <HTML>でVBSを書いていましたが外部ファイルにしようと思います。 JavaScriptの外部ファイルならlinkするsrcの拡張子は.jsが一般的ですが、VBSの一般的な拡張子は何ですか?

  • batからvbs起動

    バッチファイルからVBSファイルを起動したいと思いsample.batに以下の記述をしました。 「cscript //NoLogo "test1.vbs"」 するとプロンプト上に上記メッセージが繰り返し(無限ループ?)表示されてしまいます。 バッチからVBSファイルを起動するには何かコマンドが必要なのでしょうか?