我在比较大量 PC 磁盘时遇到问题。
脚本:
for /f "tokens=* delims== skip=1" %%x in ('"wmic.exe logicaldisk where DriveType=3 get DeviceID,FreeSpace,Size"') do (
for /f "tokens=1-3" %%a in ("%%x") do (
set "DiskID=%%a" & set "DiskFree=%%b"
if !DiskFree! gtr !DiskFreeFinal! Set "DiskIDFinal=!DiskID!" && set "DiskFreeFinal=!DiskFree!"
)
)
echo Biggest free space is on drive: %DiskIDFinal% (%DiskFreeFinal%)
输出的尺寸不正确,不是真实的。
最佳答案
您的批处理重新处理以对大数字(高达 88817 PetaByte)进行基于字符串的比较
:: Q:\Test\2018\06\27\SO_51057439.cmd
@Echo off&SetLocal EnableDelayedExpansion
Set "Space= "
Set "DiskFreeFinal=%Space%"
for /f "tokens=* delims== skip=1" %%x in (
'"wmic.exe logicaldisk where DriveType=3 get DeviceID,FreeSpace,Size"'
) do for /f "tokens=1-3" %%a in ("%%x") do (
set "DiskFree=%Space%%%b"
Rem Echo %%a !DiskFree:~-20!
if "!DiskFree:~-20!" gtr "!DiskFreeFinal:~-20!" (
set "DiskIDFinal=%%a"
set "DiskFreeFinal=!DiskFree!"
)
)
echo Biggest free space is on drive: %DiskIDFinal% (%DiskFreeFinal: =%)
示例输出(包括 REMed out 行):
> .\SO_51057439.cmd
A: 1049407488 1049407488
C: 113724567552 113724567552
D: 1090293293056 1090293293056
G: 778550509568 778550509568
H: 68505600 68505600
Biggest free space is on drive: D: (1090293293056)
关于windows - 检查所有驱动器(字母和自由大小)并比较高数字自由大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51057439/