如何查找驱动器上使用的空间以及如何将其输出为数字?

问题描述 投票:0回答:1

我目前正在制作一个用于备份系统的脚本,我想显示系统上已使用的字节数,以列出“全部”选项作为完整备份。但是,我似乎找不到如何在我的脚本中将其输出为数字。

我已经使用了

fsutil volume diskfree C:
,它为我提供了可用磁盘空间的数字,但我不知道如何继续,只将其在我的脚本中列为数字。我还需要使用其他东西吗?或者有没有办法做到这一点?

batch-file cmd
1个回答
0
投票

当您可以使用内置的

fsutil.exe
命令来完成此操作时,为什么要使用通常需要提升权限的
dir

@For /F "Tokens=1,* EOL=[ Delims=)" %%G In ('Dir %SystemDrive% /W /-C') Do @For /F %%I In ("%%H") Do @Set "FreeSpace=%%I"
@Echo %FreeSpace%

您还可以使用

WMIC.exe
实用程序执行任务,而无需提升:

@For /F "Tokens=1,* Delims==" %%G In ('%SystemRoot%\System32\wbem\WMIC.exe Volume Where "DriveLetter='%SystemDrive%'" Get FreeSpace /Value 2^>NUL') Do @For /F %%I In ("%%H") Do @Set "FreeSpace=%%I"
@Echo(%FreeSpace%

您甚至可以获得

powershell.exe
的帮助,再次无需海拔:

@For /F %%G In ('%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -Command "(Get-Volume -DriveLetter '%SystemDrive:~,1%').SizeRemaining" 2^>NUL') Do @Set FreeSpace=%%G"
@Echo(%FreeSpace%

如果您仍然想使用建议的

fsutil.exe
命令实用程序执行相同的操作,那么也许以下内容就足够了:

@Set "FreeSpace=" & For /F "Tokens=1,* Delims=:" %%G In ('%SystemRoot%\System32\fsutil.exe Volume DiskFree %SystemDrive% 2^>NUL') Do @For /F %%I In ("%%H") Do @If Not Defined FreeSpace Set "FreeSpace=%%I"
@Echo(%FreeSpace:,=%
© www.soinside.com 2019 - 2024. All rights reserved.