所以,我繼續與像這樣的任務麻煩:如何管理處理從另一個對象擴展的字符串列表?
$fileNames = Get-ChildItem -Path . -Filter "*.*" `
| Select-Object -ExpandProperty Name
$fileNames.GetType()
我期望輸出爲字符串[],但它的對象[]。
更糟的是,如果我再嘗試操作的文件名:
$fileNames = Get-ChildItem -Path . -Filter "*.*" `
| Select-Object -ExpandProperty Name `
| Select-Object { "$_" -replace '^.*deploy\.log\.\d\d\d\d-\d\d-\d\d\.', '' }
我再次想到的String []。相反,我得到一些奇怪的哈希表,作爲正則表達式的關鍵。
在這兩種情況下,它都按我期望的那樣做,只是將它包裝在對象中。
這裏有什麼規則?我可以只操縱一串字符串嗎?
所以的foreach對象更像是地圖。即它將函數應用於每個項目並返回一個列表?而不是像Linq的ForEach那樣對每個項目採取行動,但不返回任何內容? –
'ForEach-Object'就像是一個'map'函數,是的。從每次迭代返回項目是可選的 –