Разбивая строку на пробелы, но игнорируйте раздел между двойными кавычками - PullRequest
0 голосов
/ 16 мая 2018

Как можно разбить эту строку:

$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"'

в следующий массив:

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

При использовании $Argument.split(' ') он также разбивает строки в двойных кавычках, что нежелательно. В блоге ScriptingGuy они объясняют, что возможно. Но я не могу найти способ игнорировать строки между двойными кавычками.

1 Ответ

0 голосов
/ 16 мая 2018
$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

Выход:

/NOGUI
/DATE
/EXPAND
4
/SIZEUNIT
3
/SORTTYPE
0
/EXCEL
"S:\Test\Brecht\Log Test\Report 13.xlsx"
/SHEETNAME
"Data set"
/SCANPATH
"S:\My Folder"  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...