- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【WSH】スクリプトを作るスクリプト)
【WSH】スクリプトを作るスクリプト
このQ&Aのポイント
- フリーソフトがインストールできないため、社内で使用するスクリプトをWSH(vbs)で作成しました。しかし、ユーザーの入力に合わせてスクリプトを作成する際、WriteLineの中に変数を代入することができず問題が発生しました。解決策を教えてください。
- ユーザーが入力したパスをスクリプト内に入れ込む方法がわかりません。具体的には、InputBox関数でユーザーの入力を取得し、その値をWriteLineの中に代入したいと考えています。解決策を教えてください。
- WSH(vbs)を使用してスクリプトを作成していますが、WriteLineの中に変数を代入することができません。何か他の方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
p = InputBox("フォルダのパスを入力してください。") Set objFS = CreateObject("Scripting.FileSystemObject") Set objTS = objFS.CreateTextFile("スクリプトA.vbs") objTS.WriteLine "MsgBox " & chr(&H22) & p & chr(&H22) objTS.Close 別に、でいいんじゃない? 「"」の表示方法だけでしょ。
その他の回答 (2)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.3
他の言語では、文字列の中に特定の書式で書くと、その部分が変数の内容が展開される、という機能を持っているものはあります。 例) perl "MsgBox \"$p\"" # 「$p」が変数$pの内容になる vbscriptにはそんな機能は無かったと記憶しています。 # 逆に、 p と書いて変数pを展開するようだったら、怖くて1文字の変数名など使えません すでにあるように、文字列の連結を使いましょう。
質問者
お礼
回答ありがとうございます。 解決しました。
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
& という演算子で文字列の連結が出来ます。 objTS.WriteLine "MsgBox """ & p & """"
質問者
お礼
回答ありがとうございます。 ただ、上記の部分のスクリプトを置き換えてみましたが 「スクリプトA.vbs」を実行しても何も表示されないです。。。 追記>>No.2さんの回答で解決しました!
お礼
回答ありがとうございます! 上記の方法で、意図どおりの結果を得ることができました!! 同じ方法を思いつき、テストしてみたんですが うまくいかなかったんですよね。。。 おそらくedominn7777さんの言うように「"」の使い方が まずかったんだと思います。 ありがとうございました!!