奇怪的是,尽管休眠文件位于根目录中,但PowerShell无法检测到它。显然,这是一种虚拟文件。
$Path = "$Env:SystemDrive\hiberfil.sys"
# Result $False
Test-Path -Path $Path
# Result 0
(Get-ChildItem -Path $Path -Force).Length
所以,我如何找出休眠文件的大小?
确定,调整休眠大小powercfg.exe /hibernate /size 50
时可以识别大小。但是如何在不更改休眠大小的情况下知道大小?谢谢
您可以执行以下操作:
(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