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

在WSL中执行脚本时如何调用cmd运行指定单条命令?

WSL内调用CMD命令执行构建的方案

WSL原生支持调用Windows系统下的可执行文件,你不需要手动切换运行环境,只要将原脚本中需要在CMD下运行的command2用cmd.exe /c包裹即可,执行完成后会自动回到WSL上下文继续执行后续命令。

修改后的脚本示例:

command1 && cmd.exe /c "command2" && command3

注意事项

  • 正常情况下WSL会自动继承Windows的系统路径,可直接调用cmd.exe,如果提示找不到命令,可写全路径调用:/mnt/c/Windows/system32/cmd.exe
  • cmd.exe会透传内部命令的退出码,原有脚本的&&串联逻辑完全不受影响,只有command2执行成功才会继续执行后续的command3
  • 如果command2中涉及路径参数,需要先将WSL侧的Linux路径转换为Windows格式的路径,使用wslpath -w命令即可完成转换,示例:
    # 示例:在CMD中列出WSL /home/user/build目录下的文件
    win_build_path=$(wslpath -w /home/user/build)
    command1 && cmd.exe /c "dir $win_build_path" && command3
    
  • 如果需要执行多条CMD命令,可将多条命令放在同一对引号内,用CMD的命令分隔符&或者&&拼接即可:
    cmd.exe /c "cd C:\build & build.bat && echo build success"
    
  • 如果CMD命令中包含双引号,外层可以改用单引号包裹避免转义冲突:
    cmd.exe /c 'echo "cmd 内部带双引号的输出"'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 12:39:05