Puppet在创建Windows脚本时转义我的变量

时间:2014-05-15 12:48:49

标签: windows batch-file puppet

我会保持简短,我试图运行以下代码来安装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"'

2 个答案:

答案 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 ..."

小心逃避所有双引号,但除此之外,我看不到你需要担心的特殊字符。