Board logo

标题: [原创] [批处理命令一日一教学](1)目录跳转:cd [打印本页]

作者: namejm    时间: 2008-11-12 21:19     标题: [批处理命令一日一教学](1)目录跳转:cd

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

标题:一日一教学系列1_目录跳转:cd
首发地址:http://bbs.bathome.net/viewthread.php?tid=2513
发表日期:2008.11.12
更新日期:无

上一篇:无
下一篇:以树形格式罗列文件:tree http://bbs.bathome.net/viewthread.php?tid=2514

  当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候,可以考虑使用目录跳转命令cd。

  例如,我们打开命令行窗口的时候,一般是这样操作的:在桌面左下角找到“开始”菜单,打开“运行”,输入“cmd”,回车。这个时候,命令行窗口默认的当前目录位于当前用户所在的路径下,比如:C:\Documents and Settings\JM,如下图所示。

[attach]577[/attach]

  一般而言,这个目录下并没有我们想要处理的文件,我们很可能需要跳转到其他目录,比如说:C盘根目录,这个时候,我们就需要使用cd来实现目录的跳转了:cd c:\。

[attach]578[/attach]

  cd的全称是Change Directory,直译为改变文件夹,也就是跳转目录、切换路径的意思。它后面可以接驱动器符号、完整路径和相对路径。从它的全称可以得知,它不能操控文件,而只能作用于驱动器或文件夹。例如,我们使用 cd c:\boot.ini 这个命令来跳转(boot.ini是文件而非文件夹),就会出现“目录名无效”的错误,如下图所示。

[attach]579[/attach]

  如果要跳转到当前目录的根目录下的话,可以使用一条简单的命令:cd\。如下图所示。

[attach]580[/attach]

  继续跳转,cd c:\windows\temp,跳转到临时目录下。

  此时,如果想回到上一层目录windows,可以使用这条命令:cd..。如下图所示。

[attach]581[/attach]

  想想看,如果执行 cd. 会发生什么情况?

  结果,目录没有发生跳转,原地不动。如下图所示。利用这个原理,可以用 cd.>test.txt 来构造0字节的文本文件。详细情况,请参考这篇文章:本人常用的批处理实用技巧 之第2点。

[attach]582[/attach]

  原来,在cmd中,.、..和\表示相对路径,.是当前目录,..是上一层目录,而\表示根目录。

  来看一个比较诡异的现象:

[attach]583[/attach]

  从当前目录下跳转到不同分区路径d:\的时候,cd d:\没有成功,当前目录没有发生改变;当添加了一个参数 /d 之后,命令成功地执行了。原来,要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进入的是当前目录的子目录,则可以不使用 /d 参数。这一点是很容易被大家忽略的,希望能引起足够的重视。

  再来看一个更加诡异的现象:

[attach]584[/attach]

  原来,当输入的是当前驱动器号+冒号的时候,将显示当前目录的完整路径;当输入的是当前驱动器号+冒号+反斜杠的时候,将跳转到当前路径的根目录下。

  CD 的另一个非常有价值的用途是:显示当前的完整路径,一般用通过 %cd% 加以引用。如下图所示。此时,CD 作 Current Directory 解释,即“当前文件夹”。

[attach]586[/attach]

  高级话题:看看下面这幅图反映了什么问题?

[attach]585[/attach]


作者: weiyepin    时间: 2008-11-12 22:25

呵呵,

温习温习了
作者: chenyulzhh    时间: 2008-11-12 22:30

支持...
P处理教育还是要从基础做起..
作者: shi2525775    时间: 2008-11-12 22:38

@echo 每天学习学习
作者: solitude    时间: 2008-11-12 22:40

呵呵,学习了新点.
cd.>test.txt
作者: lhjoanna    时间: 2008-11-12 22:58

最有一张图片,输入cd d: 显示d:\ 说明上次从d盘跳出时是在根目录。如果输入下面命令(输完一个按一次回车)(设d:下有movie文件夹):

d:
cd movie
c:
cd d:

输入后则会显示d:\movie
作者: hlzj88    时间: 2008-11-12 23:00

一直没有用过 cd /d
谢谢了
作者: ghostbbs    时间: 2008-11-21 12:37

这句好看
cd.>test.txt

另外运行中输入
.
..
...
也都是有用的,
作者: shuhangchen    时间: 2008-11-28 10:39

这个我们上课的时候也用过
作者: gs133790    时间: 2008-11-28 20:28

呵呵,最基本的DOS命令.
作者: firewolf85    时间: 2008-12-8 16:17

%cd%
又张见识了,谢谢楼主
作者: onlinefox    时间: 2008-12-15 10:39

学习了,楼主幸苦
很实用
作者: axingsky    时间: 2008-12-26 16:09

原来就一个CD命令就这么多用法  学习了
作者: xujin1402008    时间: 2008-12-28 14:46

很详细啊~谢谢~~~~~
作者: xujin1402008    时间: 2008-12-28 14:54

/d 没用过啊,怪不得在CMD中老是转不到其他盘符~~~
作者: coolhui    时间: 2009-1-2 00:04

原来要跳转到其他盘根目录下还要加/d参数啊,以前一直还要先回根目录再跳转呢,现在明白了,谢谢楼主分享~~~
作者: p05401144    时间: 2009-1-7 14:47

学习了,谢谢
最后一个图没搞懂,怎么又不需要/d了呢???

[ 本帖最后由 p05401144 于 2009-1-7 14:48 编辑 ]
作者: wolhh    时间: 2009-1-21 11:52

哈哈 学到知识我就兴奋 好高兴~~~
努力学习批处理中~~~~~~
作者: zhangenming    时间: 2009-1-25 15:44

我的发现:

如果输入c:,d:,e:将会进入相应的磁盘 而且显示的不是根目录 好像是最近访问过的文件夹
作者: mayi_heihei    时间: 2009-1-28 11:09

楼主老师,您留的高级话题是不是说用来列对方的驱动器列表,看看对方的盘符到底有哪些?我刚刚试了试,当我这里没有J:\盘时再用cd j:\命令会提示没有驱动器J。不知我说的对不对。
作者: wxcute    时间: 2009-1-28 11:29

高级话题是指更改和显示其他盘的当前目录。

C:\Documents and Settings\Administrator>cd /d d:\my documents

D:\My Documents>c:

C:\Documents and Settings\Administrator>cd c:
C:\Documents and Settings\Administrator

C:\Documents and Settings\Administrator>cd d:
D:\My Documents

C:\Documents and Settings\Administrator>cd d:\

C:\Documents and Settings\Administrator>cd d:
D:\

C:\Documents and Settings\Administrator>


[ 本帖最后由 wxcute 于 2009-1-28 11:31 编辑 ]
作者: zjw767676    时间: 2009-1-31 12:52

通俗易懂!一个简单的CD就有这么多用法!!!
输入d:
       cd /d d:
       cd d:\
效果是一样的,都是进入D:的根目录!

[ 本帖最后由 zjw767676 于 2009-1-31 13:17 编辑 ]
作者: whedu    时间: 2009-2-23 20:57

今天刚报到,学完第一课,大有收获!
作者: hack1988    时间: 2009-2-23 22:38     标题: cd.>test.txt这个有什么作用吗?

直接右键新建的文本文档有什么区别?都是0字节啊!不懂?或许我太笨!请多多指教!
作者: sakyamuni    时间: 2009-3-19 23:27

进来是一步步的,跳出去是不是也是要一步步的出去。类似堆栈
作者: 随风    时间: 2009-3-19 23:44

原帖由 p05401144 于 2009-1-7 14:47 发表
学习了,谢谢
最后一个图没搞懂,怎么又不需要/d了呢???


cd c: 命令 如果不加 \  符号,可以切换到非当前根目录下的其它根目录。
作者: clsun88    时间: 2009-3-22 21:34

很好的资料,今天要用的时候才发现批处理原来还能这样使用
作者: 5810239q    时间: 2009-3-25 17:04

从基础开始末
作者: 8582565    时间: 2009-4-9 13:26

@echo off
学习了
作者: mahuifang    时间: 2009-4-14 16:37     标题: cd转换地址时,应该可以总是打开开关/d吧?

假如bat文件在E:\study\bat\下面:
命令:cd C:\study
结果:命令无效,因为当前在E:\,所以,无法到C:\下面,要想跨盘操作,需要打开 /d
命令:cd /d C:\study
结果是当前地址指向指定位置C:\study

结论:为了在任何情况下,都能够转到任意指定位置,可以总是打开这个开关 /d
这个结论应该成立,并可以利用吧,如果是这样,对于我等新手来说,总是打开/d就好了
作者: ztluo3    时间: 2009-5-5 09:23     标题: 学习了

新手才学第一课,感觉教程写得太好了,通俗易懂比那些只会解释命令作用的教程不知道强多少倍。。我也有24楼一样的问题用cd.>test.txt命令建0字节的文件有什么作用呢?
作者: Batcher    时间: 2009-5-5 12:27     标题: 回复 34楼 的帖子

当你需要把批处理的结果输出到一个文本文件中的时候,可以先用这个方法创建一个文件。
作者: xmaoh234    时间: 2009-5-9 12:30

高级话题
如果 cd 加 驱动器号和: 显示当驱动器号的根目录,,,是不是 ?
作者: Batcher    时间: 2009-5-9 19:54     标题: 回复 36楼 的帖子

你测试的结果如何呢?
作者: kirk1234    时间: 2009-6-3 23:47     标题: 回复 6楼 的帖子

正解      学习了
作者: gxuan2008    时间: 2009-7-5 10:32

看了坛规,有点不敢发言了.
但确实学到了东西,想顶下.
不过最后那里还是有点不懂,
一下是回到根目录,一下又不是呢?
它们的规律是什么?我还没看明白.
作者: keen    时间: 2009-7-5 11:01     标题: 回复 39楼 的帖子

有问题,可以在相应版块单独发帖求助,在发求助帖时,应尽量一次性把问题描述清楚,不要别人问一点你补充一点。象你楼上说的问题,我就不知道你在说什么。请发帖时,一定要描述清楚。
作者: wlsmen    时间: 2009-7-6 17:42

不是很懂哦..

但是多少哦学到了点.
作者: intocode    时间: 2009-7-8 11:07

跳转到其他分区的话
直接输d:应该等于cd /d d:\
作者: ccfafei    时间: 2009-7-16 15:34

又学了一点,我说以前怎么用cd d:不能直接跳到d盘,输入d:才能原来要加/d
作者: Hysteria    时间: 2009-8-8 16:15

呵呵!!
  通俗易懂!
  谢谢LZ 啦~
作者: hnxtddd    时间: 2009-8-28 09:46

唯一的缺憾就是没有把CHDIR也顺便提下.我以前都不知道什么内部命令与外部命令,所以呢,就想了解的仔细点..希望能做点补充,当然,我也知道,看了上面的教程对cd的用法也有了较全面的了解,还学会了遇到问题要多动个脑筋,已经很是感激了。.谢谢分享
作者: keen    时间: 2009-8-28 10:08     标题: 回复 42楼 的帖子

chdir和cd作用一样吧。
作者: hbagxbzyan    时间: 2009-9-23 17:35

CD.>test.exe这个好象是看后边格式是什么吧 !
CD.>1.txt   个人感觉是创建右键没有的格式
作者: tangweichao    时间: 2009-10-14 15:11

从基础学起,支持了
作者: feidian1028    时间: 2009-12-1 11:06

set /p var=每天学一帖>nul
作者: feidian1028    时间: 2009-12-1 11:09

set /p=每天学一帖<nul
应该是这个
作者: wsjxwj    时间: 2010-1-16 08:31     标题: 回复 1楼 的帖子

呵呵~再次学习了 echo  %cd% 的正解
作者: hy55310    时间: 2010-1-16 15:34

对CD有更进一步的了解了
作者: cao    时间: 2010-1-16 16:30

  1. 最后一幅图说明的应该是显示当前盘符的完整路径
复制代码
我也不知道我的猜测对不对,但只有这个解释比较合理,于是贸然发帖,楼主见笑了。
作者: cao    时间: 2010-1-16 16:32

楼主的帖子后面要是也有相应的习题就更好了,看完帖子没练习的实在是手痒。。。。。。
作者: cao    时间: 2010-1-16 16:39

还有啊楼主,我很是不明白你为什么发
  1. d:\downloads>echo 当前路径是 %cd%
复制代码
这个东西,就像楼主前面说的直接cd.不是更省劲吗?
作者: kklslskk    时间: 2010-2-11 10:36

学习了三点 1    cd.>新建文件夹.txt
                      2    c:/tdownload/admin echo 显示当前路径:%cd%
                            显示当前路径 c:\tdownload\admin
                      3    C:\Documents and Settings\Administrator>cd c:\
                             c:\:
                             C:\Documents and Settings\Administrator>cd d:\
                             C:\Documents and Settings\Administrator>
                             C:\Documents and Settings\Administrator>cd /d d:\
                             D:\>
                             C:\Documents and Settings\Administrator> cd c:
作者: bayyje    时间: 2010-2-11 21:07     标题: www.cz-it.net

学习一下.........新手
作者: VBT    时间: 2010-3-1 17:17

记得我以前是cd d:\
不管在那个盘符都 直接这样跳转的。
好纳闷,
  学习了
作者: hellohuhu    时间: 2010-3-12 15:50

一直没有用过 cd /d
谢谢了
作者: skychen    时间: 2010-7-12 14:05

学习了。。。谢谢。。。
作者: wbh    时间: 2010-8-8 09:12

我也碰到过这样的问题 用DOS CD 命令无法转到其它盘符的根目录下去 可能是DOS与CMD的差异 所以写批处理的时候 我就不玩盘符跳转
直接绝对路径引用其它盘符的文件。
作者: kzeroa    时间: 2010-8-8 21:45

%cd%  从来没见过的有人用
作者: taijiji    时间: 2010-8-9 15:20

简简单单的一个DOS命令,原来还有这么多学问啊!真是惭愧!
作者: cdx_huanmeng    时间: 2010-8-11 21:08

受益匪浅,感谢楼主啊!
作者: paladinjin    时间: 2010-8-18 09:31

原来echo.>*.txt生成的文件是1字节
cd.>*.txt是0字节
偶原来以为随便一个命令+.>*.txt就Okl了看来不行啊
严谨点为好啊
谢了
作者: updateyq    时间: 2010-8-24 19:26     标题: 学习啦

以前还不知道有/d这个命令
作者: jonse978    时间: 2010-8-26 14:54

比书上讲得详细多了,例子也丰富
作者: sbjatje    时间: 2010-9-7 22:51     标题: 学习了,谢谢楼主学习了,谢谢楼主

学习了,谢谢楼主学习了,谢谢楼主
作者: wonderful    时间: 2010-9-13 14:31

值得去学习,长见识了。
作者: Readsmoke    时间: 2010-9-20 13:58

为什么要用CD来转换盘符呢
我试验了下  直接 盘符:   也可以跳的
作者: 5ICMD    时间: 2010-10-10 11:29

看来还行,这些还能看明白了.总结一遍,学到了/d这个参数(3 day)
作者: pyg    时间: 2010-11-4 12:19

坚决认真彻底研究,决不辜负作者一番苦心。看了开头片,这次一定要系统学习!
作者: liqiangchai123    时间: 2010-11-4 19:54

我也是来学习的。对这些东西都是似懂非懂!
作者: babythree23    时间: 2010-11-18 22:03

very good ,thankyou
作者: yolala    时间: 2010-11-28 16:06

哈哈 学习到了 echo和cd.原来也是可以用来创建指定的文件类型的,这下好了,以后可以随心所欲地创建文档了,而且还可以往文档里写入内容
作者: linglingtong    时间: 2011-1-4 16:06

来学习学习 很有用的知识
作者: hunanchenzhou9    时间: 2011-1-8 18:32

学习了  哈哈哈....
作者: AA526744390    时间: 2011-1-9 08:02

温习温习了  呵呵
作者: wangchao    时间: 2011-1-12 19:33     标题: \\.\%cd%\

\\.\%cd%\是什么意思?能否解释一下
作者: zixuan    时间: 2011-2-22 21:54

/d这个参数和%CD%这个变量
作者: ghostwar    时间: 2011-3-8 01:48

最后一个图,也就是那个高级话题,没看明白!!!
   最后那个谁能解释下?
作者: sdvdxl    时间: 2011-3-26 21:06

呵呵,看帖,增见识
作者: coldsummerwei    时间: 2011-5-25 16:55

本帖最后由 coldsummerwei 于 2011-5-25 17:02 编辑
最后一个图,也就是那个高级话题,没看明白!!!
   最后那个谁能解释下?
ghostwar 发表于 2011-3-8 01:48

"cd 盘符: "命令的意思是显示此盘符的当前目录(而不是此盘符的根目录)
"cd 盘符:\ "命令是想切换到此盘符的根目录。但如果此盘符不是当前盘符,需要加上参数 /d ,所以最后一个图的最后一个命令没有达到想要的效果。
应该这样使用:"cd /d d:\ "  就对了。
请仔细看下图的效果:
[attach]3838[/attach]
作者: 小黑熊    时间: 2011-5-31 09:27

学习了,谢谢楼主无私
作者: 月夜空闻    时间: 2011-6-12 13:28

支持  不错!
作者: cxmzlxb    时间: 2011-6-21 15:05

比较简单,但教程写得非常不错!新手特别适用,也首次学会了cd.>test.txt的用法!
作者: zaixinxiangnian    时间: 2011-8-9 16:35

输入,驱动器名+冒号,只显示输入的驱动器名+冒号。如果输入驱动器名+冒号,+反扛。(如果是当前目录就进入相应的目录) 如果是其它目录就不变
忘楼主给出正确的解释
作者: CUer    时间: 2011-8-9 22:51

回复 92# zaixinxiangnian


规定
没啥好解释的
作者: CUer    时间: 2011-8-9 22:54

回复 81# wangchao


UNC路径
作者: iamryan    时间: 2011-8-11 16:37

咱是来晚了点了。呵呵
作者: itxudx    时间: 2011-8-31 15:53

最反一张图。是想进入别的分区。得用楼主说的:
要跳转到不同分区的时候,需要添加强制跳转参数 /d
作者: cjiabing    时间: 2011-9-18 15:03

回复 98# 狐狸


    批处理是一门学问,一个工具,学了自然有用。既然是电脑盲,就从基础学起吧。
作者: 小麦    时间: 2011-9-19 00:10

不错 学习了
作者: andy七少    时间: 2011-10-14 10:58

重新温习一变,看到cd /d的作用原来我还不会,学习了
作者: surup    时间: 2011-10-25 13:43

很好的一个命令。
作者: ydafhjeajtrj    时间: 2011-10-25 16:18

d参数没用过,该记下了
作者: huxiaomeia    时间: 2011-11-8 21:45

复习复习啦    最后那个图片原来是  从哪个目录跳出的啊。。。。。。
作者: cjiabing    时间: 2011-11-8 22:15

直接在命令提示符cmd窗口试试就知道了。
万能一点的用法就是cd /d
作者: xso300    时间: 2011-12-6 21:38

本帖最后由 xso300 于 2011-12-6 22:03 编辑

cd /d x:\directory
作者: 相识    时间: 2011-12-7 01:17

#1
在cmd中,.、..和\表示相对路径,.是当前目录,..是上一层目录,而\表示根目录

2
要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进入的是当前目录的子目录,则可以不使用 /d 参数。
作者: zhangyanjing    时间: 2012-3-11 12:12

v好好学习天天向上
作者: find    时间: 2012-3-11 13:49

回复 108# ls88428


DOS时代的cd命令不支持/d,那个时候切换盘符都是像那样做的。这不是什么问题,也不用晕乎。
作者: volcanol    时间: 2012-4-8 09:39

学习了两招:
CD  /d
%cd%




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