Board logo

标题: [一日一教学](9)创建文件夹:md [打印本页]

作者: namejm    时间: 2009-2-13 00:03     标题: [一日一教学](9)创建文件夹:md

[一日一教学]批处理系列帖子索引 http://www.bathome.net/thread-2576-1-1.html

标题:一日一教学系列9_创建文件夹:md
首发地址:http://bbs.bathome.net/viewthread.php?tid=3319
首发日期:2009.2.13
更新日期:无

上一篇:重命名文件(夹):ren  http://bbs.bathome.net/viewthread.php?tid=3318
下一篇:删除文件夹:rd http://bbs.bathome.net/viewthread.php?tid=3340

  创建文件夹使用的是md命令,它的另一个写法为mkdir(由MakeDirectory演变而来),格式为:md 文件夹名,其中,文件夹名可以使用带路径的格式。例如:md d:\test,也可以用 md test 在当前路径下建立test文件夹。

  如果要创建的文件夹带有空格或&,需要用引号把文件夹名括起来,例如:md "test abc"、md "abc&xyz"。

  如果不使用引号,又会带来什么后果呢?

  测试的结果是:

  1、如果文件夹名带空格,那么,md test abc 语句会在当前目录下创建test和abc这两个文件夹;利用这个特点,我们有时候可以收到化繁为简的奇效:如果要创建abc def xyz这三个文件夹,直接使用 md abc def xyz 就行了,而无需连写三条md语句。当然,md abc;def;xyz或者md abc,def,xyz 这样的写法也是可以的。
  2、如果文件夹名中含有&,那么,md abc&xyz 会创建abc这个文件夹,并提示说:'xyz'不是内部或外部命令,也不是可运行的程序或批处理文件,这是因为,&是复合语句的连接符号,它把前后两部分视为两条子语句了。

  忠告:如果文件夹名含有特殊符号,请不要忘记使用双引号!

  md还有一个比较方便的功能:创建中级目录。也就是说,md a\b\c这样的命令,可以在当前目录下建立文件夹a,然后,在a下建立文件夹b,b之下再建立文件夹c,一气呵成,而无需先md a之后,再cd a,然后md b,再cd b,接着cd b,然后md c。
作者: lixiaodaoaaa    时间: 2009-2-13 00:42     标题: 总结下,如下

  1. md  abdc dlasasd   asdlfjdasl     
复制代码

分别建立三个文件夹

md  a\b\c\d\e\f\g\g\i

意义不一样了。就是这样了
作者: batman    时间: 2009-2-13 00:58

跟两个创建9级随机目录的代码,加深大家的理解:
第一个是一级一级建立的,也就是按先建a再在a中建b再在b中建c...的方式来建立
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=abcdefghijklmnopqrstuvwxyz0123456789"
  3. for /l %%a in (1,1,9) do (
  4.     for /l %%b in (1,1,9) do (
  5.         set /a a=!random!%%36
  6.         call,set "var=!var!%%str:~!a!,1%%"
  7.     )
  8.     md !var!&cd !var!&set "var="
  9. )
复制代码
第二个是一次性创建,也就是按一次建立a\b\c\d\e\...这样的方式来建立
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=abcdefghijklmnopqrstuvwxyz0123456789"
  3. for /l %%a in (1,1,9) do (
  4.     for /l %%b in (1,1,9) do (
  5.         set /a a=!random!%%36
  6.         call,set "var=!var!%%str:~!a!,1%%"
  7.     )
  8.     set "var=!var!\"
  9. )
  10. md %var:~,-1%
复制代码

[ 本帖最后由 batman 于 2009-2-13 01:29 编辑 ]
作者: Batcher    时间: 2009-2-13 01:13

md还有一个比较方便的功能:创建中级目录。也就是说,md a\b\c这样的命令

依稀记得这个特性是和操作系统有关的,手上有2000/98系统的朋友可以帮忙测试一下这个命令。
作者: hlzj88    时间: 2009-2-13 19:38

问一下,我有个映射盘,里面有病毒,不知道名字,他的特点是两个文件 .vbs和autorun.inf,我用p删除并MD建立了带系统几种具有保护属性的autorun.inf文件夹,且在里面也建立了带点的文件夹,但这个病毒猖獗的给替换了,因此请教MD的厉害,可否让病毒能安静下来。难道这病毒还带删除autorun.inf功能吗
作者: namejm    时间: 2009-2-13 20:10

  自从以点号结尾的文件夹的秘密被公开之后,很多病毒都已经开始防着这一手,能删除以点号结尾的文件夹的病毒渐渐多起来了。病毒与反病毒始终是道高一尺魔高一丈地此消彼长着,如果你经常碰到安全方面的问题,就应该多采取一些安防措施,而不应该仅仅依靠有限的几种手段。
作者: Batcher    时间: 2009-2-13 22:31     标题: 回复 5楼 的帖子

可以试试用cacls命令取消文件夹/文件的所有读写权限
作者: whedu    时间: 2009-2-24 13:55

md可以创建多级目录,是不是只在2000\xp\2003及其后的操作系统中才能用啊
作者: freeback    时间: 2009-3-13 23:45

可以在后面多加几个点如test.....\这样就不能被删了
作者: huaier    时间: 2009-5-3 18:35

终于有个看懂了学会了的命令了
作者: Batcher    时间: 2009-5-3 18:38     标题: 回复 8楼 的帖子

以前的操作系统是不支持这样做的
不过现在还使用98以前的系统的人恐怕不多了吧
呵呵
作者: Batcher    时间: 2009-5-3 18:38     标题: 回复 9楼 的帖子

能建就能删,参考:批处理中畸形文件夹和畸形文件的创建、访问、删除
http://bbs.bathome.net/thread-3885-1-1.html
作者: tiansui    时间: 2009-6-12 08:19     标题: md命令的另一种写法

md命令的另一种写法是 md\a\b\c
作者: Hysteria    时间: 2009-8-9 14:11

遇到个怪怪的问题!
      当  E:\>md abc efg 时候,会创建abc和efg两个文件夹
但是,当  E:\>md E:\abc efg时候,只有abc一个文件夹阿!
作者: superbatboy    时间: 2009-8-9 15:33

看是简单的md命令,没想到还有这么多技巧!
作者: yettybetty    时间: 2009-9-23 11:57     标题: 回复 14楼 的帖子

不会啊 我这里会建立abc和efg2个文件夹啊
作者: zhouyao17    时间: 2009-11-24 07:27

菜鸟。我不想创建文件夹,只想自动创建.txt文件怎么做?
作者: hbyndyj    时间: 2011-10-7 18:11

本帖最后由 hbyndyj 于 2011-10-7 18:32 编辑

回复 17# zhouyao17


    创建txt文件
md >abc.txt
作者: hero1997    时间: 2014-12-23 13:04

看起来不复杂,用用再说吧
作者: wrsbj    时间: 2015-1-2 15:07

感觉很不错啊,支持楼主
作者: 281390226    时间: 2015-4-8 15:36

回复  zhouyao17


    创建txt文件
md >abc.txt
hbyndyj 发表于 2011-10-7 18:11


差点都忘记了,谢谢提醒!重定向符号>,>>还得复习一下
作者: bakatu    时间: 2017-4-27 11:16

学到了,感谢
作者: yangfresh    时间: 2019-6-12 20:57

回复 8# whedu


    我在win7测试,可以创建多级目录
作者: 贺小倩    时间: 2020-3-4 06:54

我试了一下你说的代码, md abc def xyz,执行后,abc看到了,但是def 和xyz 找不到,然后我执行了第二次,报错说xyz 已存在,这是为啥




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2