2016-04-06 13 views
1

に変換:バッチ印刷空きディスクサイズと私は</p> <p><code>fsutil volume diskfree D: >> test.txt</code></p> <p>を使用してディスクの空き領域を計算しています。しかし、今の出力は、そのようなものですので、読みやすい

Nombre total d'octets libres    : 529557839872 
Nombre total d'octets      : 1000203087872 
Nombre total d'octets libres disponibles : 529557839872 

私はしたいと思います可能であればMoまたはGoに変換する

+2

バッチ数は32ビット整数に制限されています。現在、ディスクサイズがこれらの制限を超えているため、他の方法を使用する必要があります。 [いくつかのアイデア](http://stackoverflow.com/q/36301198/2152082)。 – Stephan

答えて

0

ディスクサイズを変換するには、次のような方法を試してください:

@echo off 
NET FILE 1>NUL 2>NUL 
if %errorlevel% == 0 goto elevated 
REM build vbs to invoke UAC 
(
    echo Set UAC = CreateObject^("Shell.Application"^) 
    echo UAC.ShellExecute %0, "", "", "runas", 1 
)> "%temp%\getadmin.vbs" 

ECHO ****** 
ECHO Invoking UAC for Privilege Escalation 
ECHO ****** 

"%temp%\getadmin.vbs" >nul 
exit /B 

:elevated 
    del "%temp%\getadmin.vbs" 2>nul  
    CD "%~dp0" 
(
    for /f "tokens=2 delims=:" %%a in ('fsutil volume diskfree D:') do Call:GetSize %%a 
)>Disk_Free.txt 
start "" Disk_Free.txt 
pause 
Exit /b 
::************************************************************************* 
:GetSize 
(
echo wscript.echo FormatSize("%~1"^) 
echo '******************************************************************* 
echo 'Function to format a number into typical size scales 
echo Function FormatSize(iSize^) 
echo aLabel = Array("bytes", "KB", "MB", "GB", "TB"^) 
echo For i = 0 to 4 
echo  If iSize ^> 1024 Then 
echo   iSize = iSize/1024 
echo  Else 
echo   Exit For 
echo  End If 
echo Next 
echo FormatSize = Round(iSize,2^) ^& " " ^& aLabel(i^) 
echo End Function 
echo '******************************************************************* 
)>%tmp%\Size.vbs 
Cscript /NoLogo %tmp%\Size.vbs 
Del %tmp%\Size.vbs 
Exit /b 
関連する問題

 関連する問題