为什么构建后事件中的cd命令无法正常切换目录?
构建后事件cd命令未切换目录的原因及解决办法
原因
构建后事件中的每一条命令默认会在独立的cmd进程中执行。你写的三条命令分属三个进程运行:
- 第一条
cd在初始进程执行,输出当前目录; - 第二条
echo "hello"在新进程执行; - 第三条
cd bin\Release在另一个新进程执行,进程完成后直接退出,所以你看不到切换目录的输出,且该目录切换不会影响后续命令(如果有的话)。
解决办法
要让所有命令在同一个shell进程中执行,有两种常用方式:
- 用
&&串联命令:把所有命令写在同一行,用&&连接,确保前一条执行成功后再执行下一条:cd && echo "hello" && cd bin\Release - 用括号包裹多行命令:把需要在同一个进程执行的命令用括号括起来,它们会在同一个shell中运行:
( cd echo "hello" cd bin\Release )
如果命令逻辑复杂,也可以把所有步骤写到一个.bat批处理文件中,然后在构建后事件里直接调用:
call your_script.bat
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

