[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] [批处理命令一日一教学](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,如下图所示。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

    • zj21033: 讲解非常精细技术 + 1
    • jrx401: 基础很重要。学习了。技术 + 1
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

2023年9月15日,学习 cd,谢谢

TOP

一直只知道,cd 最好是加/d参数,原来是强制跳转的意思。。。

感谢,基本功一定要扎实啊

TOP

谢谢楼主,学习了!
但是为什么是win10的窗口xp的cmd啊?
本人已死,不用联系,要联系下来联系~

TOP


一直搞不懂为什么cd不能跳转到desktop..

TOP

更改文件夹图片 好像用不了%cd%

TOP

怎么用CD跳转到desktop啊。。。?

我菜鸟。。

TOP

回复 42# hnxtddd


    cd不就是cd的简写吗?

TOP

回复 22# zjw767676


    cd /d d:  应该是进入d盘下最近访问路径,和cd /d d:/ 进入d 盘根目录不一样

TOP

本帖最后由 lucidlynx88 于 2021-11-20 22:29 编辑

高级话题的回复
我去看了官网原文的回答If used with only a drive letter (for example, cd C:), cd displays the names of the current directory in the specified drive.
个人是如下翻译的
cd [<drive>:]显示此盘符的当前目录;
另外当前盘符的当前目录是可以改变的
cd [<drive>:[directory]]
[img][/img]
那么现在问题来了,如果我现在在D:,如何直接跳转到C:当前目录?
个人理解用for循环读取D:当前目录,在进行跳转
  1. for /f %%i in ('cd c:') do (cd /d %%i)
复制代码
[img][/img]
图片上传不了,暂就这样吧,以后在编辑。

TOP

本帖最后由 qixiaobin0715 于 2020-10-26 11:30 编辑

实际上cd命令跨盘操作,不加/d虽不能跳转,也能记忆操作路径,有图为证

附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 verbs 于 2019-12-5 14:32 编辑

最后留下的高级问题的一点思考(其实没思考,原文有解释的,哈哈),
cd + 驱动器号 + 冒号, 显示的是该驱动器下的当前目录。
cd + 驱动器号 + 冒号 + \, 将跳转到该驱动器下的根目录下。
如下图验证:


PS:
为什么最后没有跳转,是因为跨驱动器跳转需要加 参数 /d
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
欢迎与我交流,共同进步,提升技术。

TOP

原来是需要登陆才能看到图片啊
之前还以为没图片呢,怪不得这排版有点乱

TOP

/d强制跳转到其他盘符

TOP

知道了/d的用途,very good。
study

TOP

返回列表