Powershell,使用(空格分隔的)字符串作为程序的参数

Ray*_*Ray 7 string powershell parameter-passing

我读过这篇文章,它并没有解决我的问题。

我有一个以空格分隔的字符串,比方说$MyString = "arg1 arg2"。假设我有一个名为 的命令行程序MyProgram,它接受任意数量的位置参数,因此它可以像MyProgram arg1 arg2. 然而,doingMyProgram $MyString不起作用,norMyProgram ($MyString -split ' ')也不起作用MyProgram $($MyString -split ' ')。我得到了同样的错误,基本上说它无法识别参数“arg1 arg2”,我猜这是因为它仍然认为它是一个包含空格的参数而不是两个参数。实际上,$MyString可能相当大并且是从文件中读取的。我该如何进行这项工作?

Ray*_*Ray 8

哦,我刚刚发现哈哈。我应该早点想到这一点;基本上,只需使用splatting以下对我有用:

$MyArray = $($MyString -split " ")
MyProgram @MyArray
Run Code Online (Sandbox Code Playgroud)

说明:第一行将字符串转换为以空格(“”)分割的字符串数组;命令周围的符号$(...)捕获命令的输出,然后我将其分配给$MyArray. 然后,我没有使用$MyArray美元符号,而是使用它来将字符串数组放入 的参数中。$@MyProgram


归档时间:

查看次数:

3111 次

最近记录:

3 年,8 月 前