首页 > 解决方案 > 使用 vbscript 创建包含原始变量的新 vbscript 时遇到问题

问题描述

我正在尝试制作一个创建新 vbs 文件的 vbs,但我在创建第二个文件时遇到了一些问题。

在第一个脚本的前面,它会询问您想要的用户名,然后将其分配给名为 user 的变量。

当它创建第二个脚本时,我希望用户名显示在一条消息中,说欢迎回来 [在此处插入用户名]。请输入程序值。

问题是,我无法将您的用户名放在新脚本代码中。

尝试 1

If VTCreate1 = 6 And VTCreate2 = 7 And VTCreate3 = 7 And VTCreate4 = 7 And VTCreate5 = 7 Then
Set objFile = objFS.CreateTextFile("C:\Users\Public\Desktop\Aeshnidae_1627374757.vbs")
objFile.WriteLine("vtcmd=inputbox(""Welcome back "")" & user & "("". Please input a program value."")")

尝试 1 导致新创建的脚本包含以下内容

vtcmd=inputbox("Welcome back ")Human(". Please input a program value.")

尝试 2

If VTCreate1 = 6 And VTCreate2 = 7 And VTCreate3 = 7 And VTCreate4 = 7 And VTCreate5 = 7 Then
Set objFile = objFS.CreateTextFile("C:\Users\Public\Desktop\Aeshnidae_1627374757.vbs")
objFile.WriteLine("vtcmd=inputbox(""Welcome back & user & . Please input a program value."")")

尝试 2 的结果如下

vtcmd=inputbox("Welcome back & user & . Please input a program value.")

知道如何在消息中正确获取所需的用户名吗?

标签: vbscript

解决方案


让我们从最终所需的输出线开始

vtcmd=inputbox("Welcome back xxxxxx. Please input a program value")

要将它放在字符串变量中(我们稍后将编写),我们需要引用该行并转义内部双引号

"vtcmd=inputbox(""Welcome back xxxxxx. Please input a program value"")"    

要替换占位符,我们需要剪切我们的字符串

"vtcmd=inputbox(""Welcome back "     ". Please input a program value"")"
                   close quote ^     ^ open quote

并将变量与两个字符串连接起来

"vtcmd=inputbox(""Welcome back " & user & ". Please input a program value"")"

所以,最后的代码行将是

objFile.WriteLine "vtcmd=inputbox(""Welcome back " & user & ". Please input a program value"")"

推荐阅读