Raku命令行执行无后缀脚本失败,已配置关联与PATHEXT求排查
Raku无后缀执行配置问题解决
你当前的配置已经支持直接运行无后缀脚本名(和Perl直接执行脚本的方式一致),只要parsepgn.raku放在系统PATH包含的目录下,直接输入parsepgn 3games.pgn就能正常执行。
而你遇到的raku parsepgn 3games.pgn找不到文件的问题,原因是:Raku解释器本身不会自动尝试添加.raku后缀去查找脚本文件,它只会严格匹配你输入的文件名。要实现raku 脚本名这种调用方式,需要额外做封装处理:
- 编写一个批处理文件(比如命名为
raku.bat),内容如下:
@echo off setlocal enabledelayedexpansion set "script=%1" if "%script%"=="" goto :run_raku if not exist "%script%" ( if exist "%script%.raku" set "script=%script%.raku" ) C:\rakudo\bin\raku.exe "%script%" %* goto :eof :run_raku C:\rakudo\bin\raku.exe %*
- 将原
raku.exe重命名为raku-real.exe,把这个批处理文件放在和raku-real.exe同目录下(确保该目录在PATH中)。
之后再执行raku parsepgn 3games.pgn,批处理会自动检测并补全.raku后缀,调用Raku解释器执行脚本。
注:更推荐使用直接执行脚本的方式(
parsepgn 3games.pgn),这和你熟悉的Perl使用习惯完全一致,无需额外封装。
内容的提问来源于stack exchange,提问作者hsmyers
相关产品推荐
相关产品推荐

