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

通过CMD/PowerShell执行多命令WSL指令失败的解决求助

通过CMD/PowerShell执行多命令WSL指令失败的解决求助

我最近在给多个WSL发行版批量安装软件,写了个批处理脚本却碰了壁——直接在CMD里用wsl命令传递多条组合指令时总是报错,但进入WSL内部执行同样的命令却完全正常,有没有大佬能帮忙看看咋解决?

问题复现

我试了这条测试指令:

wsl -u root -d Ubuntu-22.04  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

结果直接抛出错误:

/bin/bash: apt-get update && apt-get upgrade -y && apt-get install curl -y: command not found

但如果先进入WSL环境再执行就完全没问题:

wsl -u root -d Ubuntu-22.04

然后在WSL的shell里输入:

apt-get update && apt-get upgrade -y && apt-get install curl -y

就能正常运行,输出类似:

Hit:1 http://security.debian.org/debian-security bullseye-security InRelease
[...]

我的完整脚本(已隐去个人信息)

wsl --shutdown

wsl -u root -d Debian  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

wsl -u root -d Debian  "apt-get update && apt-get upgrade -y"

wsl -u root -d Debian  "apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev gh git vim bat"

wsl -u root -d Ubuntu-16.04  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

wsl -u root -d Ubuntu-16.04  "type -p curl >/dev/null || apt-get install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt-get/sources.list.d/github-cli.list > /dev/null"

wsl -u root -d Ubuntu-16.04  "apt-get update && apt-get upgrade -y"

wsl -u root -d Ubuntu-16.04  "apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev gh git vim bat"

wsl -u root -d Ubuntu-16.04  "curl https://pyenv.run | /bin/bash"

wsl -u root -d Ubuntu-16.04  "echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-16.04  "echo 'eval "$(pyenv init --path)"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-16.04  "echo 'eval "$(pyenv virtualenv-init -)"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-20.04  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

wsl -u root -d Ubuntu-20.04  "type -p curl >/dev/null || apt-get install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt-get/sources.list.d/github-cli.list > /dev/null"

wsl -u root -d Ubuntu-20.04  "apt-get update && apt-get upgrade -y"

wsl -u root -d Ubuntu-20.04  "apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev gh git vim bat"

wsl -u root -d Ubuntu-18.04  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

wsl -u root -d Ubuntu-18.04  "type -p curl >/dev/null || apt-get install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt-get/sources.list.d/github-cli.list > /dev/null"

wsl -u root -d Ubuntu-18.04  "apt-get update && apt-get upgrade -y"

wsl -u root -d Ubuntu-18.04  "apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev gh git vim bat"

wsl -u root -d Ubuntu-18.04  "curl https://pyenv.run | /bin/bash"

wsl -u root -d Ubuntu-18.04  "echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-18.04  "echo 'eval "$(pyenv init --path)"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-18.04  "echo 'eval "$(pyenv virtualenv-init -)"' >> /home/username/.bashrc"

wsl -u root -d Ubuntu-22.04  "apt-get update && apt-get upgrade -y && apt-get install curl -y"

wsl -u root -d Ubuntu-22.04  "type -p curl >/dev/null || apt-get install curl -y curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt-get/sources.list.d/github-cli.list > /dev/null"

wsl -u root -d Ubuntu-22.04  "apt-get update && apt-get upgrade -y"

wsl -u root -d Ubuntu-22.04  "apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev gh git vim bat"

补充说明

脚本里Pyenv和GitHub CLI的安装命令都是照着官方文档写的,现在就是卡在批量执行这一步——每条带&&的组合命令都没法通过wsl直接调用执行,求各位大佬指点迷津!

备注:内容来源于stack exchange,提问作者eccentricOrange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 11:40:29