You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMD连续命令脚本问题:如何在新CMD窗口执行cd并输出目录

嘿,我完全懂你碰到的这个坑!你本来想让新打开的CMD窗口自己切到指定目录,然后输出当前路径,结果echo却在原来的窗口跑了,新窗口啥也没显示对吧?这是因为你没把要执行的命令传递给新启动的CMD进程,而是让父脚本直接执行了这些命令。

正确的解决方法

你需要把切换目录和输出的命令打包成字符串,作为参数传给cmd.exe,这样这些操作才会在新窗口里执行。给你两种常用的写法:

1. 保持新CMD窗口打开(适合调试)

用/k参数,它会让CMD执行完命令后保持窗口不关闭:

start cmd.exe /k "cd /d c:\ && echo 当前目录:%cd%"

这里的细节:

  • start 用来启动独立的新CMD进程(也就是新窗口)
  • /d 是cd命令的参数,确保跨盘符切换也能生效(比如从D盘切到C盘)
  • && 用来串联命令,只有前面的cd执行成功,才会运行后面的echo

2. 执行后自动关闭窗口

如果不需要保留窗口,把/k换成/c就行,执行完命令窗口会自动关闭:

start cmd.exe /c "cd /d c:\ && echo 当前目录:%cd%"

为啥你之前的写法没效果?

举个例子,如果你之前写的是这种:

start cmd.exe
cd c:\
echo %cd%

那cd和echo都是在原来的脚本进程里执行的,和新打开的CMD窗口是完全独立的两个进程,新窗口根本不知道这些命令。哪怕你加了括号,比如:

start cmd.exe (cd c:\ && echo %cd%)

这也不对,括号里的内容还是父进程的命令,没有传递给新CMD。必须把命令放在引号里,作为/k或/c的参数,才能让新CMD自己执行这些操作。

内容的提问来源于stack exchange,提问作者Dudi Frid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:23:57