中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-15 12:48
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 如何用DOS的批处理自动格式化NTFS的分区 查看 2,365 回复 12
楼 主 如何用DOS的批处理自动格式化NTFS的分区 发表于 2007-07-01 10:52 ·  中国 福建 福州 电信
新手上路
积分 6
发帖 2
注册 2007-05-24 16:04
19年会员
UID 89176
性别 男
状态 离线
服务器的分区多,定期整理时格式化太多步骤,能写一个批处理,让它自己一个个的全部格式化掉所有分区```
2 发表于 2007-07-01 11:31 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
sorry sorry
没细看,:-)

[ Last edited by wudixin96 on 2007-7-1 at 12:59 PM ]
3 发表于 2007-07-01 12:48 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
Originally posted by wudixin96 at 2007-7-1 11:31:
类似这样?
for %%i in (c d e f g h) do @format %%i:

注意楼主要格的是NTFS分区,呵呵。
可看看gdisk。
Windows 一键还原
http://www.yjhy.com
4 发表于 2007-07-02 10:19 ·  中国 福建 福州 电信
新手上路
积分 6
发帖 2
注册 2007-05-24 16:04
19年会员
UID 89176
性别 男
状态 离线
是不是把二楼的直接复制成BAT文件然后运行,就能自动格式化掉所有分区啊
5 发表于 2007-07-02 10:22 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
不可以。
Windows 一键还原
http://www.yjhy.com
6 发表于 2007-07-02 13:13 ·  中国 江西 赣州 电信
高级用户
★★
论坛上抢劫的
积分 551
发帖 246
注册 2006-09-21 12:35
19年会员
UID 63270
状态 离线
我想楼主的想法不应是在纯DOS下的,只要不是在纯DOS下就可以!!!
格式化格式化指定卷中的磁盘以接受 Windows 文件。

语法
format volume

format volume

format volume

format volume

format volume

参数
volume
指定要格式化的驱动器的装入点、卷名或驱动器号。如果不指定以下的任何命令行选项,format 将使用卷类型来决定磁盘的默认格式。
/fs:file-system
指定要使用的文件系统:FAT、FAT32 或 NTFS。软盘只能使用 FAT 文件系统。
/v:label
指定卷标。如果省略 /v 命令行选项或使用它而不指定卷标,format 将在格式化完成后提示输入卷标。使用语法 /v:来防止提示输入卷标。如果利用一个 format 命令格式化多个磁盘,则对所有磁盘指定相同的卷标。有关磁盘卷标的详细信息,请单击“相关主题”列表中的 Dir、Label 和 Vol。
/a:UnitSize
指定要在 FAT、FAT32 或 NTFS 卷上使用的分配单位大小。如果没有指定 UnitSize,将根据卷的大小进行选择。下表列出了 UnitSize 的有效值。 值 说明
512 每个簇 512 字节。
1024 每个簇 1024 字节。
2048 每个簇 2048 字节。
4096 每个簇 4096 字节。
8192 每个簇 8192 字节。
16K 每个簇 16K 字节。
32K 每个簇 32K 字节。
64K 每个簇 64K 字节。

/q
执行快速格式化。删除以前已格式化卷的文件表和根目录,但不在扇区之间扫描损坏区域。使用 /q 命令行选项应该仅格式化以前已格式化的完好的卷。

当然系统盘是不可以的!!

[ Last edited by lotus516 on 2007-7-2 at 01:15 PM ]
7 发表于 2007-07-02 13:21 ·  中国 黑龙江 哈尔滨 联通
初级用户
积分 25
发帖 10
注册 2007-07-02 12:22
19年会员
UID 92927
性别 男
状态 离线
只要判定是NTFS就可以
8 发表于 2007-07-02 13:21 ·  中国 黑龙江 哈尔滨 联通
初级用户
积分 25
发帖 10
注册 2007-07-02 12:22
19年会员
UID 92927
性别 男
状态 离线
用compact试试吧
9 发表于 2007-07-02 13:24 ·  中国 黑龙江 哈尔滨 联通
初级用户
积分 25
发帖 10
注册 2007-07-02 12:22
19年会员
UID 92927
性别 男
状态 离线
对了,还有前面写的别把系统盘符也加进去,哈哈
10 发表于 2007-07-02 20:11 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
不是说dos批处理吗?楼主没搞明白dos是啥,就出题?呵呵。
Windows 一键还原
http://www.yjhy.com
11 发表于 2007-07-03 04:58 ·  中国 河北 唐山 联通
银牌会员
★★★
积分 1,148
发帖 514
注册 2007-06-01 12:51
19年会员
UID 89959
性别 男
来自 河北
状态 离线
低格吧 比较狠

[ Last edited by shanliang8008 on 2007-7-3 at 05:01 AM ]
12 发表于 2007-07-03 05:05 ·  中国 河北 唐山 联通
银牌会员
★★★
积分 1,148
发帖 514
注册 2007-06-01 12:51
19年会员
UID 89959
性别 男
来自 河北
状态 离线
有人在虚拟机里用过DM吗
13 发表于 2010-01-07 10:38 ·  中国 辽宁 葫芦岛 联通
中级用户
★★
积分 247
发帖 147
注册 2009-04-09 20:52
17年会员
UID 142531
性别 男
状态 离线
用gdisk实现dos下自动格式化c:以外的所有分区(包括ntfs)


如果启动的是还原分区上的dos系统,那还原系统所在分区一定是c:
有的时候用ghost或者TI 等还原系统前,需要自动格式化还原系统所在分区以外的全部分区,以避免其他分区的病毒在进入系统的时候再次感染。而dos下用软件手动对ntfs分区的格式化有很些麻烦,可如果不格式化,一旦这些ntfs分区上有病毒呢?
所以考虑编辑此脚本,利用awk分析分区结构,用gdisk格式化除c盘以外的全部分区,NTFS分区仍然被格式化成NTFS格式。
gdf2 1 表示对第一硬盘操作
gdf2 2 表示对第二硬盘操作

gdf2.bat 代码如下:注意红色部分是GDISK命令,我已经用 ECHO 注释掉,如果真实情况下需要运行本脚本,必须把前面的ECHO去掉。
@echo off
cls
set d=%1
if *%1*==** set d=1
echo Format all partitions in HD%D% ,but C: !
echo Please wait....
gdisk %d%|awk 'substr($0,20,3)=="LOG"&&substr($0,2,2)!="C:";substr($0,20,3)=="PRI"&&substr($0,2,2)!="C:"'>gdf1.txt
if exist gdf1.txt type gdf1.txt
awk 'substr($0,53,10)!~"NTFS" {print "/del /p:"substr($0,6,1)" /y";print "/cre /"substr($0,20,3)" /for /Q /Y" }' gdf1.txt>gdf2.txt
awk 'substr($0,53,10)~"NTFS" {print "/del /p:"substr($0,6,1)" /y";print "/cre /"substr($0,20,3)" /For /NTFS /Q /Y" }' gdf1.txt>>gdf2.txt
awk '{if (substr($0,15,1)=="A") print "/act /p:"substr($0,6,1)" /y"}' gdf1.txt>>gdf2.txt
if exist gdf1.txt del gdf1.txt
echo.
if not exist gdf2.txt goto end
type gdf2.txt
pause
echo gdisk %d% /batch:gdf2.txt
del gdf2.txt
:end
set d=

--------------------------
脚本解读:
1、用awk分析gdisk得到的硬盘分区列表,将c盘以外的逻辑分区和主引导分区信息传递给文件gdf1.txt,并显示gdf1.txt
2、用awk分析gdf1.txt,找出分区格式不是ntfs的分区,把删除这些分区和重建并格式化这些分区的gdisk脚本命令传递给文件gdf2.txt
3、用awk分析gdf1.txt,找出分区格式是ntfs的分区,把删除这些分区和重建并格式化这些分区的gdisk脚本命令追加给文件gdf2.txt
4、用awk分析gdf1.txt,找出激活状态的分区,把激活这些分区的gdisk脚本命令追加给文件gdf2.txt
5、用gdisk调用 gdf2.txt 中的指令。
全程用到2个文本文件gdf1.txt,gdf2.txt和一个环境变量%d%
gdf1.txt---------存放硬盘上除了c盘以外的分区列表
gdf2.txt---------存放gdisk调用的脚本指令
%d%-------------用于存放待操作硬盘的编号

http://bbs.wuyou.com/viewthread.php?tid=158594&extra=page%3D1
http://bbs.wuyou.com/viewthread.php?tid=158553&extra=page%3D1

[ Last edited by DXSX on 2010-1-7 at 10:44 ]
论坛跳转: