批处理之家's Archiver

namejm 发表于 2009-2-13 00:03

[一日一教学](9)创建文件夹:md

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

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

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

  创建文件夹使用的是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

总结下,如下

[code]md  abdc dlasasd   asdlfjdasl     [/code]
分别建立三个文件夹

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

意义不一样了。就是这样了

batman 发表于 2009-2-13 00:58

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

[[i] 本帖最后由 batman 于 2009-2-13 01:29 编辑 [/i]]

Batcher 发表于 2009-2-13 01:13

[quote]md还有一个比较方便的功能:创建中级目录。也就是说,md a\b\c这样的命令[/quote]
依稀记得这个特性是和操作系统有关的,手上有2000/98系统的朋友可以帮忙测试一下这个命令。

hlzj88 发表于 2009-2-13 19:38

问一下,我有个映射盘,里面有病毒,不知道名字,他的特点是两个文件[size=4] [font=Impact].vbs[/font][/size]和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楼 的帖子

能建就能删,参考:批处理中畸形文件夹和畸形文件的创建、访问、删除
[url]http://bbs.bathome.net/thread-3885-1-1.html[/url]

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

[i=s] 本帖最后由 hbyndyj 于 2011-10-7 18:32 编辑 [/i]

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=41862&ptid=3319]17#[/url] [i]zhouyao17[/i] [/b]


    创建txt文件
md >abc.txt

hero1997 发表于 2014-12-23 13:04

看起来不复杂,用用再说吧

wrsbj 发表于 2015-1-2 15:07

感觉很不错啊,支持楼主

281390226 发表于 2015-4-8 15:36

[quote]回复  zhouyao17


    创建txt文件
md >abc.txt
[size=2][color=#999999]hbyndyj 发表于 2011-10-7 18:11[/color] [url=http://www.bathome.net/redirect.php?goto=findpost&pid=93913&ptid=3319][img]http://www.bathome.net/images/common/back.gif[/img][/url][/size][/quote]

差点都忘记了,谢谢提醒!重定向符号>,>>还得复习一下

bakatu 发表于 2017-4-27 11:16

学到了,感谢

yangfresh 发表于 2019-6-12 20:57

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=21738&ptid=3319]8#[/url] [i]whedu[/i] [/b]


    我在win7测试,可以创建多级目录

贺小倩 发表于 2020-3-4 06:54

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

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.