中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-27 17:37
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 求助,在最后一个盘符建一个文件夹 查看 5,051 回复 27
16 发表于 2006-09-28 22:23 ·  中国 福建 南平 电信
初级用户
积分 197
发帖 33
注册 2003-07-24 00:00
22年会员
UID 7424
性别 男
状态 离线
楼上的
加了能用吗?
比如 C: D: E: F:
FAT32 NTFS NTFS FAT32
DOS 下加载分区后盘符是怎么排列的? 排出盘符顺序最后一个盘符就是最后一个分区吗?
如果 最后一个区是 NTFS 格式的 加载的NTFS 驱动是否能向 NTFS 格式里写数据
我知道 用 OMNIFS 可以向NTFS 格式里写数据
但不知道要怎么把查出有多少个分区把他设成 一个变量%disk%
omnifs mkdir 1.%disk%
17 发表于 2006-09-28 23:08 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
贴我自己的DOS维护盘里的一段代码吧,家当哦
借助gdisk和gdisk32实现DOS,CMD下通用方法,也不用加载讨厌的NTFS驱动了。
Gdisk版本8.3

@echo off
::中国DOS联盟论坛: fastslz
FOR %%A IN (id1 id2 id3 id4 id5 id6 id7 id8 id9) DO SET %%A=
Gdisk 1 >Gdisk.TXT
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id1=C盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id1=C盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id2=D盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id2=D盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id3=E盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id3=E盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id4=F盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id4=F盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id5=G盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id5=G盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id6=H盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id6=H盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id7=I盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id7=I盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id8=J盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id8=J盘(FAT32)
FIND /i /n "NTFS" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id9=K盘(NTFS)
FIND /i /n "FAT32" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 set id9=K盘(FAT32)
cls
echo.
echo.
echo 显示第1硬盘上分区数及磁盘类型
echo.
echo %id1% %id2% %id3% %id4% %id5% %id6% %id7% %id8% %id9%
PAUSE >NUL
rem del Gdisk.TXT
第一高手 第二高手

18 发表于 2006-09-28 23:31 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
如果考虑你的启动盘是多用途话,某些硬盘有2个以上主分区代码就不正确了。自己修改一下吧
把17楼作为方案1
FIND /i /n "PRIMARY" Gdisk.TXT|FIND /i "" >nul
if not errorlevel 1 ECHO 你的第1硬盘上有2个以上主分区
GOTO 方案2
:方案2
.........不重复了自己掂量着改吧

觉的这个方法好给我评分哦

[ Last edited by fastslz on 2006-9-28 at 23:33 ]
第一高手 第二高手

19 发表于 2006-09-30 04:09 ·  中国 广东 东莞 电信
中级用户
★★
积分 282
发帖 130
注册 2006-09-20 22:25
19年会员
UID 63201
来自 广东
状态 离线
学到点东西,谢谢啊!
20 发表于 2006-09-30 04:09 ·  中国 广东 东莞 电信
中级用户
★★
积分 282
发帖 130
注册 2006-09-20 22:25
19年会员
UID 63201
来自 广东
状态 离线
学习了。
21 发表于 2006-09-30 05:59 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
这个也是对付DOS与Windows下最好的方案,单硬盘原生Windows情况下系统盘符完全一样!
第一高手 第二高手

22 发表于 2007-01-25 08:31 ·  中国 广东 广州 珠江宽频
中级用户
★★
积分 210
发帖 85
注册 2007-01-14 12:38
19年会员
UID 76501
性别 男
来自 广东广州
状态 离线
迟来,学习中...

参考6楼redtek兄的思路,可兼容纯DOS模式的代码如下:
@ECHO OFF
FOR %%i IN (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO IF EXIST %%i:\nul SET last=%%i:
MD %last%\tmp
(测试环境:winXPsp2_CMD、MSDOS7.10)

纯DOS下的问题:
1. IF命令不能直接测试盘符的存在,可通过测试空目录(nul)实现;是否有更好的办法?
2. FOR命令也不能使用"GOTO :EOF"退出循环,求教redtek兄及各位有何方法可实现“条件成立时退出FOR”?

wait...
23 发表于 2007-02-01 03:27 ·  中国 广东 中山 广东瑞江科技有限公司BGP数据中心
初级用户
白小痴
积分 48
发帖 23
注册 2006-09-16 01:45
19年会员
UID 62709
性别 男
状态 离线
呵呵。。大家好热心啊。下次我有问题也要麻烦大家啦。

真是很多东西要向大侠们学习啊
24 发表于 2007-02-11 13:52 ·  中国 天津 东丽区 电信
初级用户
积分 42
发帖 20
注册 2007-02-02 04:25
19年会员
UID 78384
性别 男
状态 离线
没有看明白:不就在一个分区建一个文件夹吗?MD?
什么是最后一个分区?仍然不明白?在windows下一般都是先入为主,字母索引的方式排列,最后一个分区是否是排列最后的那个?在DOS下的启动检测中最后的那个?——均排除不可识别和不可写入分区。如是:咱们倒要提一个问题——今天你可以在最后一个分区建目录;明天或后天更改的盘符,它还在最后一个分区吗?咱们质疑其实用价值!如否:LZ的系统中有Linux,上述说的都是废话。
25 发表于 2007-02-11 19:06 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
呵呵,还是这个问题郁闷.
分区符转换就可以了.
1种方法,启动系统的时候直接转换成分区符的分析文件.然后调用以1.1: 1.2: 1.3: 1.4:......的方式判断第1块硬盘的最后一个分区符,在转换成盘符,MD建立.或者弄自解压的空文件夹包,复制过去自动释放!

2种方法也是基本雷同不太细说了!
26 发表于 2007-02-11 19:12 ·  中国 黑龙江 哈尔滨 电信
高级用户
★★★
积分 760
发帖 357
注册 2005-10-10 22:33
20年会员
UID 43332
状态 离线
如果想深入了解请分析XUSEN的作品,启动机器分析分区符的时间大概是30秒!
或者看看最近我和llztt1讨论的分区盘符转换讨论的部分帖子!

[ Last edited by 0451lym on 2007-2-11 at 07:14 PM ]
27 发表于 2007-02-20 09:12 ·  中国 广东 广州 电信
新手上路
积分 16
发帖 7
注册 2005-12-21 13:25
20年会员
UID 47588
状态 离线
学到了一些!
28 发表于 2007-02-20 14:15 ·  中国 河北 邯郸 联通
中级用户
★★
积分 223
发帖 59
注册 2005-05-23 00:00
21年会员
UID 39002
性别 男
状态 离线
哪有Gdisk8.3???
论坛跳转: