我正在尝试编写一个 bat 文件,它可以安装特定的发行版并准备以最少的用户交互来执行某些操作。
我使用的命令是wsl --install Ubuntu-24.04
。
这个命令有效,它会要求输入用户名、密码等所有信息,但是一旦安装了所有信息,bat 文件就会卡在 Linux shell 中,用户必须键入内容exit
才能退出 shell 才能继续运行 bat 文件。
当尝试时wsl --install Ubuntu-24.04 --no-launch
,命令返回到 bat 文件,但是当我尝试运行下一个命令时wsl -d Ubuntu-24.04 -- exit
(实际启动发行版以执行其他命令),我收到错误代码Wsl/Service/WSL_E_DISTRO_NOT_FOUND
。
发行版在运行时也不会显示wsl --list
,因为显然--no-launch
它不仅“无法启动”,而且“无法(正确)安装”。更确切地说,它所做的只是“下载以供以后安装”。
运行echo exit | wsl --install Ubuntu-24.04
也不起作用,因为第一个输入需要是用户名,然后是密码。即使我先从脚本中查询两者,单是用户名就已经给我带来了错误。
1.
wsl --install ...
通过在后台运行来启动您的命令:2.使用循环监控动作,并实现超时。
3.使用命令
wsl.exe -l -v | findstr /i Installing
检查完成状态。4.如果安装仍在进行中,则该字符串
Installing
将出现在输出中。安装完成后,该字符串将不再存在。只要找到该字符串,循环/超时就会继续运行。