如何在批处理文件和嵌入式脚本之间共享值

How to share values between batch file and embedded script

我正在尝试在我的批处理文件和其中的嵌入式脚本之间共享值,但我找不到使其工作的方法。我对嵌入式脚本比较陌生...

我试图在网上找到答案,但找不到我的问题的答案。它需要(所有脚本)在同一个 .bat 文件中...

<!-- : Begin batch script
@echo off
cls
set "Shared_UserName=VelocityDK"
goto ShareValue

:ShareValue
cls
cscript //nologo "%~f0?.wsf" //job:UserName
pause >nul
cls & exit /force

----- Begin wsf script --->
<package>
    <job id="UserName">
        <script language="VBScript">
            Dim Shared_UserName As String = %Shared_UserName%
            WScript.Echo "Your username is: " & Shared_UserName
        </script>
    </job>
</package>

我希望嵌入式 VBScript 写入以下输出:Your username is VelocityDK. 但是,我收到一条消息:

Microsoft VBScript compilation error: Expected end of statement

如果您打算在 VBScript 中使用 shell 方法,那么请使用 Windows 脚本宿主 (WSH) 自动化对象。请找代码:

Set wshShell = CreateObject( "WScript.Shell" )
userName = wshShell.ExpandEnvironmentStrings("%Shared_UserName%")
WScript.Echo "Your username is: " & userName

参见参考资料:devguru.com or ss64.com