Windows 11中Raku的`run`命令无法正常运行该如何解决?
解决Windows下Raku
run 命令执行失败的问题 问题根源
ls是类Unix系统专属命令,Windows默认没有对应的可执行文件,直接调用会因找不到命令返回退出码1。dir是Windows命令提示符(cmd.exe)的内置命令,并非独立可执行程序,Raku的run方法无法直接调用这类内置命令,必须通过启动cmd进程来间接执行。
可行解决方案
1. 正确执行dir命令
借助cmd.exe来调用内置命令,写法如下:
run('cmd', '/c', 'dir');
注:/c 参数用于让cmd执行指定命令后自动退出。
2. 实现类Unix风格的ls效果
如果习惯使用ls命令,可通过两种方式实现:
- 方式一:调用PowerShell的
ls别名(实际映射Get-ChildItem命令):
run('powershell', '-Command', 'ls');
- 方式二:先安装Windows Subsystem for Linux (WSL),再调用WSL环境中的
ls:
run('wsl', 'ls');
3. 跨平台兼容写法(可选)
若想让代码同时适配Windows和类Unix系统,可通过判断操作系统动态选择命令:
if $*DISTRO.is-win { run('cmd', '/c', 'dir'); } else { run('ls'); }
内容的提问来源于stack exchange,提问作者StevieD
相关产品推荐
相关产品推荐

