在Notepad++中运行Ruby脚本出现Errno::EINVAL错误求助
解决Ruby脚本与批处理运行时的Errno::EINVAL错误
错误原因
你遇到的Errno::EINVAL错误,是因为批处理文件直接调用.rb脚本文件,还传递了%1参数,导致Ruby误将参数当作要读取的文件路径,而不是让脚本从控制台读取用户输入。gets方法在这种情况下会尝试打开参数对应的文件,自然抛出无效参数的错误。
修复步骤
修改批处理文件,用Ruby解释器执行脚本
替换原批处理内容为以下代码:@echo off ruby "C:\Users\Asus\ruby\helloworld.rb" pause核心是必须通过
ruby命令启动脚本,而非直接运行.rb文件,这样Ruby才会将标准输入绑定到控制台,让gets能正常读取你输入的数字。如果Ruby不在系统PATH中,使用完整路径调用解释器
若命令行直接输入ruby无响应,说明Ruby未加入系统环境变量,需要写出ruby.exe的完整路径:@echo off "C:\Program Files\Ruby\bin\ruby.exe" "C:\Users\Asus\ruby\helloworld.rb" pause注意替换成你电脑上Ruby实际安装的路径。
验证脚本本身
你写的Ruby脚本逻辑没问题,直接在命令行进入脚本所在目录,执行ruby helloworld.rb,应该能正常提示输入数字并计算结果,确认脚本本身无问题。
内容的提问来源于stack exchange,提问作者tarry100
相关产品推荐
相关产品推荐

