如何在一行命令中切换当前目录并打印目录路径?
解决CMD中切换目录后打印新路径的问题
问题出在CMD的变量预解析机制:当你执行cd /d D:\dir2 && echo %cd%时,CMD会在整条命令执行前就把%cd%替换成当前目录(也就是C:\dir1),之后才执行cd切换目录,所以echo输出的还是旧路径。
有两种简单的解决方法:
方法1:启用延迟变量扩展
使用cmd /v:on开启延迟扩展,用!cd!代替%cd%,延迟扩展会在命令执行时才解析变量:
C:\dir1> cmd /v:on /c "cd /d D:\dir2 && echo !cd!"
方法2:用call命令触发二次解析
通过call让CMD对变量进行二次解析,把%cd%写成%%cd%%:
C:\dir1> cd /d D:\dir2 && call echo %%cd%%
两种方法都能正确输出切换后的目录路径D:\dir2。
内容的提问来源于stack exchange,提问作者geek175
相关产品推荐
相关产品推荐

