Arrays 如何加入&引用;工作

Arrays 如何加入&引用;工作,arrays,powershell,operators,evaluation,Arrays,Powershell,Operators,Evaluation,包含一个类似Powershell的代码,该代码拆分$env:path,应用筛选器并将结果放在一起,以将其存储在$env:path中 $path = ($path.Split(';') | Where-Object { $_ -ne 'ValueToRemove' }) -join ';' 我正在读这段代码,突然,一个疯狂的-join';'出现。这是怎么回事?这背后的概念是什么?我希望(如上所述,-Join操作符可以主要以两种方式使用: -Join <String[]> <St

包含一个类似Powershell的代码,该代码拆分
$env:path
,应用筛选器并将结果放在一起,以将其存储在
$env:path

$path = ($path.Split(';') | Where-Object { $_ -ne 'ValueToRemove' }) -join ';'
我正在读这段代码,突然,一个疯狂的
-join';'出现。这是怎么回事?这背后的概念是什么?我希望
(如上所述,
-Join
操作符可以主要以两种方式使用:

-Join <String[]>
<String[]> -Join <Delimiter>
要添加到,它是一个作用于字符串数组(
string[]
)的运算符。运算符后面的字符指定用于连接数组中每个元素的字符

要分解部件,请执行以下操作:

($path.Split(';')                        # take the *string* $path and split into an *array*.
                                         # do this on the ; character

Where-Object { $_ -ne 'ValueToRemove' }) # exclude the array element which is equal to
                                         # "ValueToRemove" 

-join ';'                                # Join the *array* back into a *string*
                                         # Put ";" between each array element.

“突然,出现了一个野生的
-join';”
。“哦,那么
-join
,它看起来像一个命令的参数,是一个操作符,就像
-
是一个操作符,它是
-join
的子字符串。我明白了。指向PS知道的操作符列表的指针是最有用的。是的,没错。其他的是
-split
(您的示例可以使用它,而不是
$path.split
)、
-和
-作为
-替换
,等等。我明白了。
()
计算为一个数组,该数组支持
-join
运算符。我想这对我来说是太多了。@user1129682正是如此。它计算为一个数组,因为
.Split()
方法用于分解字符串。有关
Split()的更多详细信息
方法。我想,创建和过滤数组的部分对OP来说是清楚的。谢谢你的添加!@Clijsters:不太清楚。我希望split会生成某种形式的iterable,但我不知道通过
where Object
管道化数组的结果会是什么。
($path.Split(';')                        # take the *string* $path and split into an *array*.
                                         # do this on the ; character

Where-Object { $_ -ne 'ValueToRemove' }) # exclude the array element which is equal to
                                         # "ValueToRemove" 

-join ';'                                # Join the *array* back into a *string*
                                         # Put ";" between each array element.