我写了powershell脚本,其中包含以下代码:
foreach ($line in [System.IO.File]::ReadLines ...
它在我的电脑上工作正常,但在另一个(相同的.net框架版本)上失败并出现错误:
方法调用失败,因为[System.IO.File]不包含名为' ReadLines' 错误的方法?
答案 0 :(得分:2)
除非您有充分的理由使用[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 $_ }
答案 1 :(得分:1)
您确定所有涉及的计算机都安装了.net 4.0
吗?
并且Powershell是版本3.0
或至少2.0
,并且powershell.exe.config已自定义为使用.Net 4.0?
File.ReadLines
仅从.Net 4.0开始。
为什么不使用get-content
cmdlet?