通过启动过程传递变量的Powershell问题
Posted
技术标签:
【中文标题】通过启动过程传递变量的Powershell问题【英文标题】:Powershell Problem with passing Variables through Start-Process 【发布时间】:2021-03-01 16:42:49 【问题描述】:我正在处理的新脚本有问题。 该脚本包含一个命令,我想在其中执行另一个带有参数的程序, 由本程序支持。 首先,我将从 PowerShell 脚本获取输入并将其保存到变量中,而不是 将这些变量放入启动过程的参数列表中,以使其通过程序。 但这并不像我想要的那样工作。 我总是看到程序写了一个日志,它将变量写为 Name 而不是变量内部的内容。 我尝试了不同的方法,但它不想工作。这是带有一些测试变量的代码:
$goal = "dlr-1-ws240"
$newdate = (Get-Date).AddDays(7) | Get-Date -Format "yyyy-MM-dd-12-00-00"
$adminurl = "w10_lgrm.admin_" + $goal + "_b"
$newmember = $env:USERNAME + ":" + $newdate
$argulist = "-o AddMembers -service $adminurl -members $newmember"
Start-Process "C:\Cometo V.2.5\Bin\CometClient.exe" -Argumentlist -o AddMembers -service $adminurl -members $newmember /log
它总是将 $newmember 检测为名称“$newmember”,而不是其内部。
感谢您的每一次帮助。谢谢
【问题讨论】:
ArgumentList
不是这样工作的。请参阅docs 的正确示例。您现在正在传递一个脚本块
,它被翻译成一个字符串。
非常感谢,我没有看到这个“小”错误,但它确实解决了所有问题。
【参考方案1】:
&
param(
[int]$packageCount,
[string]$hostName
)
Start-Process "ping.exe" -ArgumentList "$hostName -n $packageCount"
-packageCount 10 -hostName "google.com"
【讨论】:
以上是关于通过启动过程传递变量的Powershell问题的主要内容,如果未能解决你的问题,请参考以下文章