gpt4 book ai didi

windows - 如何在不同的进程中运行 PowerShell 脚本并将参数传递给它?

转载 作者:可可西里 更新时间:2023-11-01 14:39:33 26 4
gpt4 key购买 nike

假设我有一个脚本:

write-host "Message.Status: Test Message Status";

我设法在一个单独的进程中运行它:

powershell.exe -Command
{ write-host "Message.Status: Test Message Status"; }

问题是我想将参数传递给脚本,这样我就可以实现这样的目标:

write-host "I am in main process"
powershell.exe -Command -ArgumentList "I","am","here"
{
write-host "I am in another process"
write-host "Message.Status: $($one) $($two) $($three)";
}

但是 -ArgumentList 在这里不起作用

我得到:

powershell.exe : -ArgumentList : The term '-ArgumentList' is not recognized as the name of a cmdlet, function, script file, or operable 

我需要在不同的进程中运行 PowerShell 脚本文件的某些部分,由于 PowerShell 脚本已上传到外部系统,我无法使用其他文件。

最佳答案

-Command 参数需要一个 scriptblock,您可以在其中使用 Param() block 定义您的参数。然后使用-args 参数传入参数。您唯一的错误是将 -args 放在 -command 之后 before 您定义脚本 block 。

这就是它的工作原理:

write-host "I am in main process $($pid)"
powershell.exe -Command {
Param(
$one,
$two,
$three
)
write-host "I am in process $($pid)"
write-host "Message.Status: $($one) $($two) $($three)";
} -args "I", "am", "here" | Out-Null

输出:

I am in main process 17900
I am in process 10284
Message.Status: I am here

关于windows - 如何在不同的进程中运行 PowerShell 脚本并将参数传递给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com