我正在制作一个程序来加速你的电脑,它所做的一件事是删除临时文件,任何人都知道如何检查硬盘驱动器上有多少空间,最好以KB为单位。我的操作系统是windows 7 ultimate 32-bit
答案 0 :(得分:2)
你可以试试这个,解释在代码中:
@ECHO OFF &SETLOCAL for /f "tokens=3" %%a in ('dir /-c %cd:~0,3%') do set "Bytes=%%~a" echo(Free space in %cd:~0,2% echo(Bytes: %Bytes% set /a KiloByte=%Bytes:~0,-3% echo(KByte: %KiloByte% set /a MegaByte=%Bytes:~0,-6% echo(MByte: %MegaByte% set /a GigaByte=MegaByte/1024 echo(GByte: %GigaByte% set /a TeraByte=GigaByte/1024 echo(TByte: %TeraByte%
请注意,cmd
无法使用大于2,147,483,647 (2^31)-1
的数字进行计算。
答案 1 :(得分:1)
如果不需要标头,您可能需要消除第一行。 wmic用于为每个磁盘获取可用空间。如果
,您可能需要添加过滤器“where DriveType = 3” @echo off
SetLocal enabledelayedexpansion
set command="wmic /node:"%COMPUTERNAME%" LogicalDisk Where Get DeviceID,FreeSpace"
for /f "tokens=1,2,*" %%a in ('%command%') do (
set disk=%%a
set freeSpace=%%b
if "%%a" NEQ "" if "%%b" NEQ "" (
set disk=%%a
set freeSpace=%%b
echo !disk! !freeSpace!
)
)
答案 2 :(得分:1)
这是一个批处理文件,使用来自修改后的帖子的powershell,并返回2位数字的可用空间KB。对于十进制KB,将1024更改为1000。
@echo off
if "%~1"=="" (
echo %%1 is a drive letter such as c
echo and returns free disk space from that drive in KB
pause
goto :eof
)
> s.ps1 echo Get-WMIObject -Query "SELECT * FROM Win32_LogicalDisk WHERE Caption='%1:'" `
>> s.ps1 echo ^| %% {
>> s.ps1 echo $f = [System.Math]::Round($_.FreeSpace/1024,0);
>> s.ps1 echo $t = [System.Math]::Round($_.Size/1024,0);
>> s.ps1 echo Write-Host ('Freespace ' + $f);
>> s.ps1 echo }
powershell -ExecutionPolicy ByPass -command ".\s.ps1"
del s.ps1
pause
goto :eof