中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 13:53
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 求助,在最后一个盘符建一个文件夹
可打印版本  5,242 / 27
第1楼 yefenghome 发表于 2006-09-23 07:03
初级用户 发帖 18 积分 54
求助,在最后一个盘符建一个文件夹
机器的不同,分区不一样,怎么才能在最后一个分区建一个目录。
第2楼 redtek 发表于 2006-09-24 04:38
金牌会员 发帖 1,147 积分 2,902
楼主什么好的实现想法吗?

为了兼容纯DOS和WINDOWS下的DOS,for枚举所有驱动器找到最后一个可写的驱动器?为了兼容纯DOS环境不能用VbScript等外部解释型脚本,只能用DOS内部命令。

1、DOS内部命令for枚举所有驱动器盘符
2、if测试枚举出来的盘符是否存在
3、如果存在就在那个盘符上建立你预定的目录名

我帮你做完了,不过最希望你自己做着玩,这样DOS水平提高很快~:)

希望楼主贴上你的实现过程,琢磨它是一件非常好玩的事情~:)


for的枚举与应用方法可以参考看这篇贴子:
==================================
批处理删除所有分区的默认共享
http://www.cn-dos.net/forum/viewthread.php?tid=21133&fpage=4
==================================

if的应用看一下 IF /? 的提示与帮助~:)

知识都是在遇解决不了问题的时候产生突破的~:)
希望楼主尽快做出来~:)
等待楼主讲讲发现和学习感受与精彩片断让大家一起分享~:)
第3楼 lxmxn 发表于 2006-09-25 04:36
版主 发帖 4,938 积分 11,386
可以用这个试试:

@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drives=!var:~-2!
md !drives!\lxmxn
)

上面倒数第三行的“lxmxn”是我自己定义的文件夹名,你可以自行更改成你想命名的目录。
第4楼 redtek 发表于 2006-09-26 03:53
金牌会员 发帖 1,147 积分 2,902
”求助,在最后一个盘符建一个文件夹“

执行完后,发现它建lxmxn目录到C盘上去了:)
非常佩服Lxmxn兄的fsutil fsinfo drives应用,所有驱动器一下子全出来了,超级爽~:)
第5楼 uime 发表于 2006-09-26 05:19
初级用户 发帖 27 积分 70 来自 河南
大家是不是没有考虑到最后一个盘符是光盘怎么办?

3楼的结果

E:\>for /F "delims=\" %i in ('fsutil fsinfo drives|find /v ""') do (
set var=%i
set drives=!var:~-2!
md !drives!\lxmxn
)
find: invalid predicate `'


[ Last edited by uime on 2006-9-26 at 05:37 ]
第6楼 redtek 发表于 2006-09-26 06:20
金牌会员 发帖 1,147 积分 2,902
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……


让盘符倒着来,第一个测试的可写的驱动器就一定是最后一个可写的盘符。

第7楼 uime 发表于 2006-09-26 18:54
初级用户 发帖 27 积分 70 来自 河南
Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……


让盘符堮..

如果光驱中有光盘,这个不会执行
如果有用subst虚拟的盘,这个会建在虚拟目录中

[ Last edited by uime on 2006-9-26 at 19:18 ]
第8楼 yefenghome 发表于 2006-09-27 05:22
初级用户 发帖 18 积分 54
Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……


让盘符堮..


初学,看了一下帮助,有一点不明
goto :eof
是什么意思? goto :eof好像是跳到标签为:eof 处执行,可在整个处理中没有发现这个标签。
第9楼 yefenghome 发表于 2006-09-27 05:22
初级用户 发帖 18 积分 54
Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……


让盘符堮..


初学,看了一下帮助,有一点不明
goto :eof
是什么意思? goto :eof好像是跳到标签为:eof 处执行,可在整个处理中没有发现这个标签。
第10楼 chujiafu 发表于 2006-09-28 04:09
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
如果在纯Dos中的最后一个盘符是Ram盘怎么办?
第11楼 redtek 发表于 2006-09-28 06:19
金牌会员 发帖 1,147 积分 2,902
如果正在建目录的时候突然停电了怎么办?

如果最后一个盘正巧遇上了被映射的网络上另一台主机的磁盘怎么办?

如果有常驻内存的某个程序监视系统不让向最后一个盘写内容怎么办?

如果最后一个盘是U盘又开启了写保护怎么办?

如果操作的时候遇到了系统百年不遇的BUG怎么办?

哈哈哈……
第12楼 weilong888 发表于 2006-09-28 08:09
银牌会员 发帖 548 积分 1,270
for与if是强大啊。
第13楼 namejm 发表于 2006-09-28 10:33
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Originally posted by redtek at 2006-9-26 06:20:
@REM 其中redtek这个名字为你想要建立的目录名称

@REM CreateFile.Bat:
@REM ==========================================

@ECHO off

FOR %%c in (Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C) do (
IF exist %%c: (
MD %%c:\Redtek
GOTO :EOF
)
)


  这段代码是有问题的,如果最后一个存在的盘符是光驱的盘符,那么,它就无法创建了。按照楼主的说法,应该是找最后一个可写的盘。那么,就应该写成
第14楼 Jnwei1202 发表于 2006-09-28 21:28
初级用户 发帖 33 积分 197
这上面所说的只能在 FAT16 FAT32 的分区格式上吧
在纯DOS下如果是 硬盘全是NTFS 格式或最后一个盘是NTFS格式就不行了

[ Last edited by Jnwei1202 on 2006-9-28 at 21:36 ]
第15楼 NaturalJ0 发表于 2006-09-28 22:04
银牌会员 发帖 533 积分 1,181
那就先加载NTFS驱动
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023