我会保持简短,我试图运行以下代码来安装vmware,变量已定义并且功能齐全,但是当它与批处理文件混合时,它们并不是很好的。转义并完全按照代码中的定义显示(如下所示)。
$cmd = 'cd "Single Sign On" & start /wait VMware-SSO-Server.exe /S /L1033 /v"/qr CONFIG_TYPE=Setup SETUP_TYPE=Basic SSO_DB_SERVER_TYPE=Bundled MASTER_PASSWORD=${sso_pwd} RSA_DBA_PASSWORD=${sso_pwd} RSA_USER_PASSWORD=${sso_pwd} COMPUTER_FQDN=test"'
答案 0 :(得分:1)
在用于定义变量的Windows bat文件中,您必须使用SET
,然后使用这些变量,您必须将它们放在%
你最好这样试试:
@echo off
cd "Single Sign On"
start /wait VMware-SSO-Server.exe /S /L1033 /v /qr CONFIG_TYPE=Setup SETUP_TYPE=Basic SSO_DB_SERVER_TYPE=Bundled MASTER_PASSWORD=%${sso_pwd}% RSA_DBA_PASSWORD=%${sso_pwd}% RSA_USER_PASSWORD=%${sso_pwd}% COMPUTER_FQDN=test"
答案 1 :(得分:1)
假设粘贴来自您的清单,它不起作用,因为您使用的是单引号。因此,在清单评估期间不会扩展变量。
您需要使用
$cmd = "cd \"Single Sign On\" & start /wait ..."
小心逃避所有双引号,但除此之外,我看不到你需要担心的特殊字符。