prncnfg.vbsを使ってVBスクリプトを書いています。プリンタの名前を変えるため以下のよう書いたのですが、どつぼに嵌ってしまいどうにもこうにも解決できません


strOldPrinterName = "OldPrinter01"
strNewPrinterName = "NewPrinter01"

Set ObjWShell = CreateObject("WScript.Shell")
ObjWShell.Run "C:\Windows\System32\cscript.exe C:\Windows\System32\prncnfg.vbs -x -p " & strOldPrinterName & " -z " & strNewPrinterName

おかしなところがありましたらご指摘頂けないでしょうか?よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/11/15 19:20:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント35pt

プリンタ名をダブルコーテーションで囲わなければいけないようですね。

文字列中の 「"」 は 「""」 で表現しますので、コマンドは下記のようになります。


strOldPrinterName = "OldPrinter01"
strNewPrinterName = "NewPrinter01"

Set ObjWShell = CreateObject("WScript.Shell")
ObjWShell.Run "C:\Windows\System32\cscript.exe C:\Windows\System32\prncnfg.vbs -x -p """ & strOldPrinterName & """ -z """ & strNewPrinterName & """"

XP ですが、一応こちらでは動作しました。

id:yasunorin

なるほど!変なクセで''とか使っていました…。

2010/11/08 19:49:13

その他の回答1件)

id:Mook No.1

回答回数1314ベストアンサー獲得回数393ここでベストアンサー

ポイント35pt

プリンタ名をダブルコーテーションで囲わなければいけないようですね。

文字列中の 「"」 は 「""」 で表現しますので、コマンドは下記のようになります。


strOldPrinterName = "OldPrinter01"
strNewPrinterName = "NewPrinter01"

Set ObjWShell = CreateObject("WScript.Shell")
ObjWShell.Run "C:\Windows\System32\cscript.exe C:\Windows\System32\prncnfg.vbs -x -p """ & strOldPrinterName & """ -z """ & strNewPrinterName & """"

XP ですが、一応こちらでは動作しました。

id:yasunorin

なるほど!変なクセで''とか使っていました…。

2010/11/08 19:49:13
id:Silvanus No.2

回答回数180ベストアンサー獲得回数71

ポイント35pt

単に、strOldPrinterNameとstrNewPrinterNameの前後に

ダブルクォーテーションマークを出力し忘れているだけの様に思いますが…。

id:yasunorin

ご指摘ありがとうございます。

2010/11/08 19:51:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません