问题描述
我想从另一个程序调用它,类似于从 cmd 提示符调用它。我想按原样编写它,就像触发警报时要调用的未扩展字符串一样,但让它在 powershell 运行空间内运行(触发警报时)并扩展 $date 的变量,$date 总是到目前为止我在语法上尝试过的都是空的。
我的语法有什么问题?
$omsaCommand = "omconfig system alertaction event=tempwarn execappath=`"Powershell.exe -NonInteractive -command `"$date = (Get-Date).ToShortDateString(); Set-Content -Path 'c:\omsaInfo\inventoryResults\temp.txt' -Value '$alertShortName - $date';`"`" ";
Invoke-Expression $omsaCommand;
解决方法
为此,我找不到允许压缩某些变量,解压缩其他变量并适合父应用程序框架的语法。我想出的解决方法是调用
execappath="Powershell.exe -NonInteractive -file C:\omsaInfo\createAlertFile.ps1 -alertName $alertShortName
"
这将允许我运行多个命令而不必担心变量管理