首页/系统/Windows 运维速查/cd 切换当前目录
CMD 常用命令74 条

cd 切换当前目录

切换当前工作目录(chdir 的别名):跨盘切换必须加 /d,是批处理脚本中最基本的路径操作。

Windows 运维速查系统更新于 2026-10-13

cd 是什么

cd 用来显示或切换命令提示符的当前工作目录,与另一条同义命令等价。它看似简单,却是批处理脚本里最容易出问题的一环:Windows 的路径模型按驱动器分别记录当前目录,不带切换驱动器的参数时,从 C 盘执行到 D 盘某个路径,只是改了 D 盘记忆中的位置,当前所在盘并不会变。理解这一点,脚本里所有关于相对路径的困惑基本都能解释清楚。

基本信息

适用平台Windows CMD(PowerShell 中的 cd 是别名,行为不同)
语法cd [/d] [路径];cd .. 返回上级;cd 反斜杠 返回根目录;cd 不带参数显示当前目录
关键开关/d 同时切换驱动器,跨盘切换必须使用,否则只记录目标盘的位置
绝对路径从盘符开始书写,如带盘符的完整路径
相对路径相对于当前工作目录解析,脚本中较易受上下文影响
脚本技巧批处理中用表示脚本所在目录的参数写法把工作目录定到脚本位置

典型使用场景

  • 在命令行中进入目标目录后执行相对路径下的程序或脚本
  • 批处理开头把工作目录切到脚本所在位置,避免双击运行时的目录不确定性
  • 跨盘切换前先加切换驱动器的参数,避免停留在原盘
  • 用返回上级与返回根目录两种写法快速在目录树中移动
  • 在脚本中确认当前目录,作为日志输出的一部分便于定位问题
  • 路径含空格时用引号包裹,避免被拆成多段参数

常用示例

常用示例
:: 显示当前目录
cd
:: 跨盘切换(最常用)
cd /d D:\Work\Logs
:: 返回上一级
cd ..
:: 返回当前盘根目录
cd \
:: 同级目录跳转
cd ..\Tools
:: 路径含空格要加引号
cd /d "D:\Program Files\App"
:: 批处理中切到脚本所在目录
cd /d %~dp0

行为对照

写法效果说明
cd 或 cd .显示当前目录不带参数只查看,不改变位置
cd 路径(跨盘)只改变该盘的记忆位置当前盘不变,是脚本最常见误解
cd /d 路径切换驱动器并进入目录跨盘操作唯一正确写法
cd ..返回上一级已在盘根时无变化
cd \返回当前盘根目录与返回上级是两回事
cd /d 脚本目录参数切到脚本所在目录双击运行时目录不确定,靠它兜底
在 PowerShell 会话里 cd 是另一个命令的别名,用法与 CMD 不完全一致,跨盘直接写路径即可,不需要切换驱动器的参数;把 CMD 脚本原样搬到 PowerShell 里执行需要留意这个差异。
批处理里判断命令是否成功,要看切换之后目录是否真的变了。可以紧接着输出当前目录,或用一个不存在的路径测试失败时的表现,避免脚本在错误目录里继续执行。

易错点

  • 跨盘切换不加切换驱动器的参数:当前盘不变,后续所有相对路径都指向原盘,脚本结果与预期完全不同
  • 路径含空格不加引号:会被当成多段参数,可能进入错误目录而不报错
  • 依赖双击运行时的起始目录:双击执行时的工作目录与脚本位置无关,脚本开头应显式切换
  • 误以为返回上级等于返回根目录:在深层目录里两者结果差别很大,需要看清当前层级
  • 切换失败后继续执行:目录不存在时命令会报错但脚本仍往下走,产出会落到错误位置

数据来源与参考

  • Microsoft Learn:cd 命令
  • Microsoft Learn:批处理参数 %~dp0

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌