1

奇怪的是,虽然休眠文件位于根目录中,但 PowerShell 无法检测到它。显然这是一种虚拟文件。

$Path = "$Env:SystemDrive\hiberfil.sys"

# Result $False
Test-Path -Path $Path 

# Result 0
(Get-ChildItem -Path $Path -Force).Length 

那么,我怎样才能知道休眠文件的大小呢?

当然,调整 hibernation 大小时可以识别大小powercfg.exe /hibernate /size 50。但是如何在不改变休眠大小的情况下知道大小呢?谢谢

4

1 回答 1

2

您可以执行以下操作:

(Get-ChildItem -Path $env:SystemDrive\ -Filter hiberfil.sys -Force).Length

不幸的是,我无法解释为什么Get-ChildItem -Path $Path -Force不起作用。这种特殊的语法模式适用于不是.sys该目录中的文件的其他文件。我不知道这个限制是设计使然还是错误。


其他查询命令可以毫无问题地找到该文件:

# Finds the File but doesn't return a FileInfo object
cmd /c "dir $env:systemdrive\hiberfil.sys /A:S"

# A less elegant command that retrieves the required data
[System.IO.FileInfo]::new([System.IO.Directory]::GetFiles(($env:systemdrive+'\'),'hiberfil.sys')).Length
于 2020-01-09T12:41:59.920 回答