我需要将数组传递给PowerShell子进程,并且想知道如何将环境变量(字符串)转换为PowerShell数组。我是否需要遵循一个约定,PowerShell会自动为我完成此约定,还是我自己需要对其进行解析?
我正在寻找bash可以做的事情。如果我设置一个环境变量,例如:
MYARR = one two three
Run Code Online (Sandbox Code Playgroud)
它会自动解释bash为数组,因此我可以这样做:
for a in ${MYARR[@]} ; do
echo Element: $a
done
Run Code Online (Sandbox Code Playgroud)
那将返回:
Element: one
Element: two
Element: three
Run Code Online (Sandbox Code Playgroud)
有什么办法可以在PowerShell中执行相同操作吗?
在使用任何定界符的情况下拆分环境变量的值。例:
PS C:\> $ env:路径 C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem; C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ PS C:\> $ a = $ env:Path -split';' PS C:\> $ a C:\ WINDOWS \ system32 C:\ WINDOWS C:\ WINDOWS \ System32 \ Wbem C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ PS C:\> $ a.GetType()。全名 System.String []
编辑: PowerShell相当于这样的bash代码
for a in ${MYARR[@]} ; do
echo Element: $a
done
Run Code Online (Sandbox Code Playgroud)
将会
$MYARR -split '\s+' | ForEach-Object {
"Element: $_"
}
Run Code Online (Sandbox Code Playgroud)
如果变量是实际环境变量而不是PowerShell变量,请使用$env:MYARR代替$MYARR。
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |