• ベストアンサー

バッチファイル

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

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

  • ベストアンサー
  • luka3
  • ベストアンサー率74% (298/400)
回答No.1

外部プログラムを実行するには、WScript.ShellのRunまたはExecを使います。 こちらのサイトがよくまっています。 ・VBScript Tips http://www.whitire.com/vbs/ まんなかぐらいにある「OS関連処理(WshShell)」のところにサンプルがいくつかあります。 バッチの中で成功したとかの結果を出力しているのであれば、 「プログラムの結果を取得する」がよいと思います。 ところで、実はVBSそのものでプリンターを制御することもできます。 先のサイトのすぐ上に「ネットワークプリンタの接続を解除する」というのもありますし、 XP以降のWindowsには prnmngr.vbs というプログラムが最初から入っています。 「prnmngr.vbs」や「printer vbs」で検索すればいろいろ出てきます。 ただ、VISTA以降は権限(UAC)の関係で使い勝手が悪くなったようですが。

at6341
質問者

お礼

助かりました。早速試してみます。

関連するQ&A

  • PC上で設定されているプリンタ一覧をバッチファイルを利用してテキストフ

    PC上で設定されているプリンタ一覧をバッチファイルを利用してテキストファイルに出力したいです。 どなたかご存知の方がいらっしゃいましたらご教授ください。 【要件詳細】 ○目的 PC端末(OS:WindowsXP)上でバッチファイルを使い、設定されているプリンタ一覧をテキストで出力したい。 数台程度であれば手動で確認するが数十台の為、手間をかけずに情報取得したい (端末利用者が専門知識を有しないため極力手動作業の負担はなくしたいのです) ○プリンタの接続形式 LAN シリアル ○試したこと 「rundll32 printui.dll,PrintUIEntry」コマンドを利用して試してみたのですが うまくいきませんでした。。。 以上、よろしくお願いいたします。

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

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

  • 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のセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • コマンドプロンプトからプリンタドライバの削除がしたい

    困っています ローカルプリンタのドライバをコマンドプロンプトの操作で 削除したいのですがうまくいきません。 下記のコードをバッチファイルとして実行すると、 ------------------------------------------------------ @echo off rundll32 printui.dll,PrintUIEntry /dd /m "モデル名" ------------------------------------------------------ 「操作を完了できませんでした。指定されたプリンタドライバは現在、使用中です。」というエラーが出てしまいます。 プリンタとファックスで確認したところ ドライバの状態は「準備完了」で、 印刷待ちのジョブはありません。 ドライバの状態を一時停止に変えてみても、 同じエラーが出ます。 OSはwindowsXP プリンターはFUJITSUのレーザープリンターです。 説明不足名ところがありましたら補足します。 よろしくお願いします。

  • バッチファイルでネットワークプリンタの追加

    教えてgooの過去ログを参考にして、 ネットワークプリンタを追加するバッチファイルを作ってみたのですが 一行目を読み込んだところで「引数が無効です」と表示されうまく動きません。 バッチファイルの内容は以下の通りです。 ======================= rundll32 printui.dll,PrintUIEntry /ia /f C:\prdrive\canon.INF /m "CANON hoge123" cscript //h:cscript cd\windows\system32 prnport -a -r IP_10.12.34.234 -h 10.12.34.234 -2 e -o lpr prnmngr -a -p "PR001" -m "CANON hoge123" -r IP_10.12.34.234 cscript //h:wscript ======================= プリンタの設定は以下のようにしたいと思っています。 ======================= StandardTCP/IPポートの作成→ プリンタIP「10.12.34.234」ポート名「IP_10.12.34.234」 プロトコル「LPR」キュー名「hoge」LPRバイトカウント有効 ======================= 参考にした過去ログはこちらです。 http://oshiete1.goo.ne.jp/qa3536570.html ここで三点の質問です。 ・漠然としていて申し訳ないのですが、このバッチを動かすにはどうすればよいのでしょうか。 ・prnportの引数で-qがありますが、ヘルプでは「TCP RAW ポートのキュー名を指定します。」とあります。  LPRのキュー名を指定するにはどうすればよいのでしょうか。 ・ドライバ名やモデル名は何処を見れば分かりますか?  プリンタのプロパティ→詳細設定タブの「ドライバ」はCANON hoge123でした。 稚拙な文で申し訳ありません。 ご回答お待ちしておりますのでよろしくお願いいたします。

  • コマンドで通常使うプリンタを切り替えたいのですが、

    コマンドで通常使うプリンタを切り替えたいのですが、 プリンタ名の1部の文字だけで切り替えることができるのでしょうか? 例えば、プリンタ名が「ABC」の場合、”BC”の文字を指定してプリンタ名を 切り替えたいのですが・・・。 プリンタ名すべてを指定してなら、下の様なコマンドで切り替えることはできました。 rundll32 printui.dll,PrintUIEntry /y /n "プリンタ名" ご存知の方のアドバイスをお願い致します。

  • AD(Win2003Server)クライアント(XP ProSP2)で

    AD(Win2003Server)クライアント(XP ProSP2)です。 クライアントのPCにて共有プリンタを設定。共有プリンタをinstallした端末が再起動を するとプリンタが消えます。コマンドにて設定しようと思い rundll32 printui.dll,PrintUIEntry /in /q /n"\\machine\Canon MP480 series Printer" でbatを作成しました。プリンタをインストールするときにウイザードが出ます。メッセージを 完全に消し、batだけで共有プリンタを起動時にinstallの方法を教えてください。

  • バッチファイルの変数をパラメーター化

    お世話様です。 WindowsXP環境に下記バッチファイルがあります。 バッチコード内は以下の通りです。 ------------------------------------------------ set TARGET_FILE=test.txt ------------------------------------------------ この【TARGET_FILE】という変数内に格納されている【test.txt】という値を パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。 という事は可能でしょうか? 上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。 VBSコード内は以下の通りです。 ------------------------------------------------ Option Explicit Dim FILE FILE = ○○○←ここに上記バッチ内の【TARGET_FILE】変数の値を受け取る。 MsgBox FILE ------------------------------------------------ 各バッチは上記VBSで実行したいのです。 Msgbox程度の処理は当然バッチでも可能ですが、何個もVBSを作成するのは厳しいので、 パラメーターが可能であれば、このVBS1個で済みます。 ご存知の方がおりましたら、お知恵を拝借しても宜しいでしょうか? 何卒宜しくお願い致します。

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

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

  • バッチファイルの作り方?

    バッチファイルについての質問です。 初心者なので、質問の情報が足りないかもしれませんが どうぞよろしくお願いします。 バッチファイルで、現在のアプリケーションを削除後、 再起動、そして新しいアプリケーションをインストールし、 再起動を実現したいと思います。 (アンインストール.exe→Windows再起動→インストール.exe→Windows再起動) これを実現するにはどういうバッチファイルを書けばよいでしょうか? また、バッチファイルではなくても他に方法はないでしょうか? アドバイスよろしくお願いします。

専門家に質問してみよう