[英]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.