[英]Powershell can't invoke .net class' method
我編寫了包含以下代碼的powershell腳本:
foreach ($line in [System.IO.File]::ReadLines ...
它在我的電腦上可以正常工作,但在另一台電腦(相同的.net框架版本)上卻失敗,並出現錯誤: 方法調用失敗,因為[System.IO.File]不包含名為“ ReadLines”的方法。 怎么了?
除非您有充分的理由使用[System.IO.File]::ReadLines
,否則請考慮使用PowerShell的Get-Content
cmdlet:
foreach ($line in Get-Content .\my\file.txt)
{
Write-Output $line
}
另外, foreach
是ForEach-Object
的別名,您可以通過管道傳遞到它。 管道中的每個對象都稱為$ _。 因此,您可以編寫一個腳本塊,該腳本塊將針對文件中的每一行運行,如下所示:
Get-Content .\my\file.txt | { Write-Output $_ }
您確定所有涉及的計算機都已安裝.net 4.0
嗎? 而且Powershell是3.0
版或至少是2.0
並且自定義了powershell.exe.config以使用.Net 4.0?
File.ReadLines
僅從.Net 4.0開始。
為什么不使用get-content
cmdlet?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.