创建目录,并在命令扩展下自动补齐中间层级。
md(同 mkdir)创建一个目录,默认启用命令扩展时可以一次创建多层路径,例如 md D:\a\b\c 会补齐 a、b、c。它常用于脚本里准备输出目录、日志目录或临时工作区,也可以在共享路径上建目录(需有写权限)。
边界:md 只建目录,不建文件、不覆盖已有路径;目标已存在时报“子目录或文件已存在”。目录删除用 rd,列目录用 dir。父目录的 ACL 决定新建目录继承什么权限;如果父目录拒绝写入,md 会直接失败,不会自动提权。路径末尾的点和空格会被 Win32 规范化掉,设备保留名也不能用作目录名。
Windows 10/11 与 Server 2016+ 的 md 行为一致;命令扩展默认开启,用 cmd /e:off 关闭后就必须逐层创建。PowerShell 中 md/mkdir 最终由 New-Item -ItemType Directory 实现,md C:\a\b 虽然可用,但错误处理和返回对象与 CMD 不同。
# 1. 建一个带日期的备份目录
C:\> md C:\backup\2026-10-22
# 2. 路径含空格时加引号,一次补齐中间层级
C:\> md "C:\Work Files\Project A\logs"
# 3. 在脚本里幂等创建,避免重复执行时报错
C:\> if not exist "C:\logs" md "C:\logs"
# 4. 在网络共享上建团队目录,前提是账号有写权限
C:\> md \\fileserver\share\team\new
# 5. 建完立即进入该目录继续操作
C:\> md C:\temp\reports & cd /d C:\temp\reports
# 6. 确认目录确实建在预期层级
C:\> dir /A:D "C:\Work Files"
md 报错,脚本重复运行会中断;用 if not exist "路径" md "路径" 做幂等判断。cmd /e:off 启动,md \a\b\c 会失败,需要逐层 md。md "C:\temp\name." 实际创建的可能只是 name;用 dir /A /X 核对真实名称。CON、PRN、AUX、NUL、COM1–COM9、LPT1–LPT9 等设备名不能直接用作目录名,会得到奇怪错误。md 失败;先用 dir 确认父路径,再用 icacls 看权限。\\?\ 前缀;普通 md 可能在深层路径上报“路径太长”。合上页面,先回答,再展开对照。
md D:\a\b\c 在什么条件下能一次建出三层目录?md C:\logs 为什么会报错?怎样写得更稳?md "C:\temp\name." 建出来的目录名可能不带点?if not exist "C:\logs" md "C:\logs" 先判断。dir /A /X 查看。
小程序版
微信扫码,随时查命令