2012-08-07 52 views
0

我試圖替換配置文件中的一段文本,如果它不匹配參數。 我在文件中讀取關鍵短語Powershell分裂給出了錯誤

​​

我借用解析配置,但不知道$名單是什麼課。 split()函數給出了一個錯誤,但是分配了$ s。這個任務很奇怪。正則表達式應該給出兩個結果,但$ s數組有太多的字段,我得到一個系統對象錯誤。

我如何才能$列表作爲簡單的文本數組與正則表達式的兩個匹配?

+0

注 - 每個Powershell變量和基礎.NET類型,這樣就可以調用'$ myvar.GetType()FullName'找出它是什麼。有時它是一個數組,所以你可以執行'$ myvar [0] .GetType()。FullName'。不是數組中的所有對象都可能是相同的類型。發送到對象到'Get-Member'也將有所幫助。 – 2012-08-07 20:57:35

回答

1

要找出哪些方法可用,並確定你正在使用什麼類型的對象,請使用Get-會員的cmdlet:

$list | gm 

在這種情況下,它可能是一個字符串。

就我所知,字符串上的.split()方法需要某種參數。查看文檔的MSDN:

http://msdn.microsoft.com/en-us/library/system.string.split.aspx

+0

$ s = $ list -split'' 這是拆分函數應該工作的方式。這就是答案。 – dcvii 2012-08-07 19:03:32

+0

它不適用於$ s = $ list.split(''),還是不是? – 2012-08-07 19:28:51

+0

它確實工作,但它發出警告: 方法調用失敗,因爲[System.Object []]不包含方法nam ed'split'。 在行:1字符:17 + $ S = $ line.split <<<<() + CategoryInfo:InvalidOperation:(分割:字符串)[],RuntimeExce ption + FullyQualifiedErrorId:MethodNotFound – dcvii 2012-08-07 23:02:29