批处理之家's Archiver

namejm 发表于 2008-11-12 21:19

[批处理命令一日一教学](1)目录跳转:cd

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

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

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

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

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

[align=center][attach]577[/attach][/align]  一般而言,这个目录下并没有我们想要处理的文件,我们很可能需要跳转到其他目录,比如说:C盘根目录,这个时候,我们就需要使用cd来实现目录的跳转了:cd c:\。
[align=center][attach]578[/attach][/align]  cd的全称是Change Directory,直译为改变文件夹,也就是跳转目录、切换路径的意思。它后面可以接驱动器符号、完整路径和相对路径。从它的全称可以得知,它不能操控文件,而只能作用于驱动器或文件夹。例如,我们使用 cd c:\boot.ini 这个命令来跳转(boot.ini是文件而非文件夹),就会出现“目录名无效”的错误,如下图所示。
[align=center][attach]579[/attach][/align]  如果要跳转到当前目录的根目录下的话,可以使用一条简单的命令:cd\。如下图所示。
[align=center][attach]580[/attach][/align]  继续跳转,cd c:\windows\temp,跳转到临时目录下。

  此时,如果想回到上一层目录windows,可以使用这条命令:cd..。如下图所示。
[align=center][attach]581[/attach][/align]  想想看,如果执行 cd. 会发生什么情况?

  结果,目录没有发生跳转,原地不动。如下图所示。利用这个原理,可以用 cd.>test.txt 来构造0字节的文本文件。详细情况,请参考这篇文章:[url=http://bbs.bathome.net/viewthread.php?tid=939][color=blue]本人常用的批处理实用技巧[/color][/url] 之第2点。
[align=center][attach]582[/attach][/align]  原来,[b]在cmd中,.、..和\表示相对路径,[color=red].[/color]是当前目录,[color=red]..[/color]是上一层目录,而[color=red]\[/color]表示根目录。[/b]

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

  再来看一个更加诡异的现象:
[align=center][attach]584[/attach][/align]  原来,当输入的是当前驱动器号+冒号的时候,将显示当前目录的完整路径;当输入的是当前驱动器号+冒号+反斜杠的时候,将跳转到当前路径的根目录下。

  [b]CD 的另一个非常有价值的用途是:显示当前的完整路径,一般用通过 %cd% 加以引用。[/b]如下图所示。此时,CD 作 Current Directory 解释,即“当前文件夹”。
[align=center][attach]586[/attach][/align]  高级话题:看看下面这幅图反映了什么问题?
[align=center][attach]585[/attach][/align]

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了呢???

[[i] 本帖最后由 p05401144 于 2009-1-7 14:48 编辑 [/i]]

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

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

[table=90%,black][tr][td][font=宋体][color=Silver]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>[/color][/font][/td][/tr][/table]

[[i] 本帖最后由 wxcute 于 2009-1-28 11:31 编辑 [/i]]

zjw767676 发表于 2009-1-31 12:52

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

[[i] 本帖最后由 zjw767676 于 2009-1-31 13:17 编辑 [/i]]

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

[quote]原帖由 [i]p05401144[/i] 于 2009-1-7 14:47 发表 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=18567&ptid=2513][img]http://www.bathome.net/images/common/back.gif[/img][/url]
学习了,谢谢
最后一个图没搞懂,怎么又不需要/d了呢??? [/quote]

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就好了

页: [1] 2 3 4 5 6

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