Powershell 检查文件是否为空

Powershell 检查文件是否为空,powershell,Powershell,我需要检查PowerShell 2.0版和5.0版中的文件“file.txt”是否为空。我在这里面临的问题是PowerShell 5.0中使用的命令let在PowerShell 2.0中不起作用 (获取内容-路径。\file.txt).length-eq$Null)-返回false,即使该文件在PowerShell 5.0中为空,但在PowerShell 2.0中返回true (Get Content-Path.\file.txt).length-eq 0)-在PowerShell 5.0中返回

我需要检查PowerShell 2.0版和5.0版中的文件
“file.txt”
是否为空。我在这里面临的问题是PowerShell 5.0中使用的命令let在PowerShell 2.0中不起作用

(获取内容-路径。\file.txt).length-eq$Null)
-返回false,即使该文件在PowerShell 5.0中为空,但在PowerShell 2.0中返回true

(Get Content-Path.\file.txt).length-eq 0)
-在PowerShell 5.0中返回true,但在PowerShell 2.0中返回false


这个问题有什么解决办法吗?

我认为这应该行得通

if (Get-Content .\File.txt){$true}else{$false}
在PS2.0中,我认为
(Get Content-Path.\file.txt).Length
不会返回任何内容。您必须使用
Get Content-Path。\file.txt | select-ExpandProperty Length


但是出于您的目的,您甚至不需要查看文件的
长度
,只需要查看内容。

解决方案仍然给出$false,即使文件是空的,这是正确的。预期的行为是仅当文件不为空时才返回
True
。那对你不管用吗?如果没有,你可以一直这样做<代码>如果(!(Get Content.\File.txt)){$true}否则{$false}第二个解决方案会给出所需的输出如果你客观地看待它,那么哪个给出true,哪个给出false实际上并不重要。你可以围绕这一点建立你的逻辑。第二种解决方案完全是为了美观。