无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3639|回复: 2
打印 上一主题 下一主题

怎样写一条批处理用gdisk格式化第一硬盘的最后分区?谢谢!

[复制链接]
跳转到指定楼层
1#
发表于 2009-12-16 13:42:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样写一条批处理用gdisk格式化第一硬盘的最后分区?谢谢!
2#
发表于 2009-12-17 18:00:01 | 只看该作者
需要 awk 和nset 配合完成
x.bat 内容如下:
=================
@ECHO OFF
GDISK 1>1.TXT
AWK '/PRI/;/EXT/;/LOG/' 1.TXT|AWK 'END {print FNR}' |NSET N=$1
AWK '/PRI/;/EXT/;/LOG/' 1.TXT|AWK 'NR==%N%'|NSET L=$0
SET P=
ECHO %L%|FIND /I "LOG"
IF NOT ERRORLEVEL 1 SET P=/LOG
ECHO %L%|FIND /I "EXT"
IF NOT ERRORLEVEL 1 SET P=/EXT
ECHO %L%|FIND /I "PRI"
IF NOT ERRORLEVEL 1 SET P=/PRI
echo /DEL /P:%N% /y >1.txt
echo /CRE %P% /FOR %1 /Q /y >>1.txt
gdisk 1 /batch:1.txt
set l=
set p=
set n=
if exist 1.txt del 1.txt
===========================

x.bat /ntfs 将把第一硬盘最后一个分区格式化成ntfs

原理:
1、 通过awk 分析出最后一个分区的 代号 和 类型(主分区/扩展分区/逻辑分区)
2、用gdisk 删除最后一个分区并重新创建和格式化

脚本在 gdisk 11.02  msdos710 下测试成功。

[ 本帖最后由 dos时代菜鸟 于 2009-12-17 18:04 编辑 ]

x.rar

33.58 KB, 下载次数: 71, 下载积分: 无忧币 -2

回复

使用道具 举报

3#
发表于 2009-12-18 08:25:54 | 只看该作者
当然还需要ms的外部命令 find ,也可以通过AWK 的字符功能达到目的。
另外 x.bat 前面几条命令可以简化
也可以把只有1个分区以及最后分区是ext的情况考虑进来,修改如下:

@ECHO OFF
GDISK 1|AWK '/PRI/;/EXT/;/LOG/'>1.TXT
AWK 'END {print FNR}' 1.TXT|NSET N=$1
  IF *%N%*==*1* GOTO ERROR1
  IF *%N%*==*0* GOTO ERROR1
NSET /P20,3 /L%N% P=$0 <1.TXT
  if *%P%*==*EXT* GOTO ERROR2
ECHO.
ECHO GDISK BATCH:
echo /DEL /P:%N% /y >1.txt
echo /CRE /%P% /FOR %1 /Q /y >>1.txt
TYPE 1.TXT
ECHO Press any key to continue .OR. Ctrl+C to cancel .
PAUSE >NUL
gdisk 1 /batch:1.txt
GOTO END
  :ERROR1
   ECHO Only one drive OR no drive !
   GOTO END
  :ERROR2
   ECHO The last drive is EXT !
:END
set p=
set n=
if exist 1.txt del 1.txt

[ 本帖最后由 dos时代菜鸟 于 2009-12-18 19:34 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-27 15:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表