CODE: [Copy to clipboard]
:: gen_gdisk_batch.cmd 自动生成gdisk分区批处理脚本
:: 作者:Climbing(xclimbing@msn.com)
:: 创建日期:2007.12.10
:: 原始链接:http://www.cn-dos.net/forum/viewthread.php?tid=36097
@set _debug=
@echo %_debug% off & SETLOCAL ENABLEDELAYEDEXPANSION
:: 取出硬盘总容量(默认第1块硬盘)
for /f "tokens=6" %%i in ('gdisk32 ^| findstr /R /C:"^ 1"') do set totalsize=%%i
set /a t1=80*1024
set /a t2=60*1024
set /a hpasize=3*1024
set prisize=
if %totalsize% GEQ %t1% set /a prisize = 20*1024
if not defined prisize if %totalsize% GEQ %t1% set /a prisize=16*1024
if not defined prisize set /a prisize=8*1024
set extsize=%totalsize%
set /a extsize-=%hpasize%
set /a extsize-=%prisize%
set /a logmin=8*1024
set /a logmax=40*1024
set logsize=
set logcount=
if %extsize% LEQ %logmax% set logsize=%extsize% && set logcount=1
if defined logsize goto _gen
:_div2
set tlogsize=%extsize%
set /a tlogsize/=2
if %tlogsize% LEQ %logmax% set logsize=%tlogsize% && set logcount=2
if defined logsize goto _gen
:_div3
set tlogsize=%extsize%
set /a tlogsize/=3
if %tlogsize% LEQ %logmax% set logsize=%tlogsize% && set logcount=3
if defined logsize goto _gen
:_div4
set tlogsize=%extsize%
set /a tlogsize/=4
if %tlogsize% LEQ %logmax% set logsize=%tlogsize% && set logcount=4
if defined logsize goto _gen
:_div5
set tlogsize=%extsize%
set /a tlogsize/=5
if %tlogsize% LEQ %logmax% set logsize=%tlogsize% && set logcount=5
if defined logsize goto _gen
:_gen
set gbatch=gdisk.gg
> %gbatch% echo # gdisk batch file, usage: gdisk 1 /batch:%gbatch% /y
>> %gbatch% echo # delete all partitions
>> %gbatch% echo /del /all
>> %gbatch% echo # create partitions
>> %gbatch% echo /cre /pri /SZ:%prisize% /for /q
>> %gbatch% echo /act /p:1
>> %gbatch% echo /cre /ext
for /l %%i in (1,1,%logcount%) do echo /cre /log /SZ:%logsize% /for /q >> %gbatch%
>> %gbatch% echo /cre /log /for /q
:_exit
ENDLOCAL
[