|
yefenghome
初级用户
积分 54
发帖 18
注册 2006-8-26
状态 离线
|
『楼 主』:
求助,在最后一个盘符建一个文件夹
机器的不同,分区不一样,怎么才能在最后一个分区建一个目录。
|
|
2006-9-23 07:03 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
2 楼』:
楼主什么好的实现想法吗?
为了兼容纯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 /? 的提示与帮助~:)
知识都是在遇解决不了问题的时候产生突破的~:)
希望楼主尽快做出来~:)
等待楼主讲讲发现和学习感受与精彩片断让大家一起分享~:)
|
|
2006-9-24 04:38 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
3 楼』:
可以用这个试试:
@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”是我自己定义的文件夹名,你可以自行更改成你想命名的目录。
|
|
2006-9-25 04:36 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
4 楼』:
”求助,在最后一个盘符建一个文件夹“
执行完后,发现它建lxmxn目录到C盘上去了:)
非常佩服Lxmxn兄的fsutil fsinfo drives应用,所有驱动器一下子全出来了,超级爽~:)
|
|
2006-9-26 03:53 |
|
|
uime
初级用户
积分 70
发帖 27
注册 2006-9-19 来自 河南
状态 离线
|
『第
5 楼』:
大家是不是没有考虑到最后一个盘符是光盘怎么办?
3楼的结果
Quote: | 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 ]
|
|
2006-9-26 05:19 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
6 楼』:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……
让盘符倒着来,第一个测试的可写的驱动器就一定是最后一个可写的盘符。
@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
)
)
|
|
2006-9-26 06:20 |
|
|
uime
初级用户
积分 70
发帖 27
注册 2006-9-19 来自 河南
状态 离线
|
『第
7 楼』:
Quote: | Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……
让盘符堮.. |
|
如果光驱中有光盘,这个不会执行
如果有用subst虚拟的盘,这个会建在虚拟目录中
[ Last edited by uime on 2006-9-26 at 19:18 ]
|
|
2006-9-26 18:54 |
|
|
yefenghome
初级用户
积分 54
发帖 18
注册 2006-8-26
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……
让盘符堮.. |
|
初学,看了一下帮助,有一点不明
goto :eof
是什么意思? goto :eof好像是跳到标签为:eof 处执行,可在整个处理中没有发现这个标签。
|
|
2006-9-27 05:22 |
|
|
yefenghome
初级用户
积分 54
发帖 18
注册 2006-8-26
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by redtek at 2006-9-26 06:20:
一直等着楼主提问后看到2楼和3楼的启发自己写出来,
别人都写出来和自己写的来的记忆和懂的内容都不一样,
结果楼主失踪了……
让盘符堮.. |
|
初学,看了一下帮助,有一点不明
goto :eof
是什么意思? goto :eof好像是跳到标签为:eof 处执行,可在整个处理中没有发现这个标签。
|
|
2006-9-27 05:22 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
10 楼』:
如果在纯Dos中的最后一个盘符是Ram盘怎么办?
|
|
2006-9-28 04:09 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
11 楼』:
如果正在建目录的时候突然停电了怎么办?
如果最后一个盘正巧遇上了被映射的网络上另一台主机的磁盘怎么办?
如果有常驻内存的某个程序监视系统不让向最后一个盘写内容怎么办?
如果最后一个盘是U盘又开启了写保护怎么办?
如果操作的时候遇到了系统百年不遇的BUG怎么办?
哈哈哈……
|
|
2006-9-28 06:19 |
|
|
weilong888
银牌会员
积分 1270
发帖 548
注册 2004-5-31
状态 离线
|
|
2006-9-28 08:09 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
13 楼』:
Quote: | 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
)
) |
|
这段代码是有问题的,如果最后一个存在的盘符是光驱的盘符,那么,它就无法创建了。按照楼主的说法,应该是找最后一个可写的盘。那么,就应该写成
@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 2>nul && GOTO :EOF
)
)
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-9-28 10:33 |
|
|
Jnwei1202
初级用户
积分 197
发帖 33
注册 2003-7-24
状态 离线
|
『第
14 楼』:
这上面所说的只能在 FAT16 FAT32 的分区格式上吧
在纯DOS下如果是 硬盘全是NTFS 格式或最后一个盘是NTFS格式就不行了
[ Last edited by Jnwei1202 on 2006-9-28 at 21:36 ]
|
|
2006-9-28 21:28 |
|
|
NaturalJ0
银牌会员
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
|
2006-9-28 22:04 |
|