我正在使用PowerShell腳本,在該腳本中,我使用以下格式輸入長字符串(來自CSV文件):第一組名稱第二組名稱第三組名稱...我正在嘗試與解析($entry.'Group Name').split("`n ") | %{ if ($_) { # Do something with the group name $_ }}我想得到像這樣的輸出:第一組名稱第二組名稱第三組名稱...但結果如下:集團的一個名稱組兩個...
3 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
中的string參數String.Split()是要分割的字符列表,而不是要匹配然后分割的字符序列。您現有的代碼將在換行符上分割,并在空間上分割。
如果只想在換行符上分割,請使用:
.split("`n")
如果要在換行符的字符序列上進行分割,然后緊跟一個空格,則可以使用Regex.Split():
[Regex]::Split($entry.'Group Name',"`n ") | ...
或者,您可以使用-split運算符,該運算符還會按字符串而不是字符列表進行拆分:
$entry.'Group Name' -split "`n "

湖上湖
TA貢獻2003條經驗 獲得超2個贊
如果我沒看錯,則您的呼叫同時.Split
傳入`n
了空格字符。因此,您實際上是在要求PowerShell將一個類似的字符串"Group One Name"
轉換成一個類似這樣的列表@("Group", "One", "Name")
。
如果$entry
是單個記錄,并且您對“組名”,“組二名”和“組三名”中的每一個都運行一次此行,那么您可能根本不需要調用.Split
-只需使用$entry.'Group Name'
直。
添加回答
舉報
0/150
提交
取消