在空格上拆分字符串但忽略双引号之间的部分

Dar*_*te1 2 string powershell split

如何拆分此字符串:

$Arguments = '/NOGUI /DATE /EXPAND 4 /SIZEUNIT 3 /SORTTYPE 0 /EXCEL "S:\Test\Brecht\Log Test\Report 13.xlsx" /SHEETNAME "Data set" /SCANPATH "S:\My Folder"'
Run Code Online (Sandbox Code Playgroud)

进入以下数组:

/NOGUI
/DATE
/EXPAND
4
/SIZEUNIT
3
/SORTTYPE
0
/EXCEL
"S:\Test\Brecht\Log Test\Report 13.xlsx"
/SHEETNAME
"Data set"
/SCANPATH
"S:\My Folder"
Run Code Online (Sandbox Code Playgroud)

使用时,$Argument.split(' ')它还会拆分双引号字符串,这是不希望的。在ScriptingGuy 的博客上,他们解释了可能的情况。但我似乎找不到一种方法来忽略双引号之间的字符串。

小智 5

$Arguments = '/NOGUI /DATE /EXPAND 4 /SIZEUNIT 3 /SORTTYPE 0 /EXCEL "S:\Test\Brecht\Log Test\Report 13.xlsx" /SHEETNAME "Data set" /SCANPATH "S:\My Folder"'

$splitString = [regex]::Split( $Arguments, ' (?=(?:[^"]|"[^"]*")*$)' )
$splitString
Run Code Online (Sandbox Code Playgroud)

输出:

/NOGUI
/DATE
/EXPAND
4
/SIZEUNIT
3
/SORTTYPE
0
/EXCEL
"S:\Test\Brecht\Log Test\Report 13.xlsx"
/SHEETNAME
"Data set"
/SCANPATH
"S:\My Folder"  
Run Code Online (Sandbox Code Playgroud)