我想用powershell调用批处理文件,如下所示:
$databaseUrl = "jdbc:sqlserver://$($databaseConfig.Server):$($databaseConfig.Port);databaseName=$($databaseConfig.Name)"
./database/liquibase/liquibase.bat --url=$databaseUrl
我的问题是=
被替换为空格,只留下--url
作为第一个参数。我试着把它放在引号中:
.\database\liquibase\liquibase.bat "--url=$databaseUrl"
......结果相同。我读到我可以使用反引号来转义字符:
.\database\liquibase\liquibase.bat "--url`=$databaseUrl"
......但等号仍然消失。我还尝试使用--%
来阻止任何格式化:
.\database\liquibase\liquibase.bat --% "--url=$databaseUrl"
但随后变量$databaseUrl
被逐字解释。
有关如何传递参数的任何帮助,未格式化,但扩展了变量将非常感激。
答案 0 :(得分:0)
可能很棘手,但是当转义运算符--%
允许环境变量扩展时,你可以试试这个:
$env:databaseUrl ="jdbc:sqlserver://$($databaseConfig.Server):$($databaseConfig.Port)"
$env:db="$($databaseConfig.Name)"
.\database\liquibase\liquibase.bat --% "--url=%databaseUrl%;databasename=%db%"