Windows上的Ruby单行程序语法错误
我很难发现Ruby单行程序脚本中的语法错误在哪里 下面是在Linux上运行的Ruby脚本Windows上的Ruby单行程序语法错误,ruby,windows,Ruby,Windows,我很难发现Ruby单行程序脚本中的语法错误在哪里 下面是在Linux上运行的Ruby脚本 ruby -e 'File.open("blahnew", "w") { |f| f.write(File.read("blah")) }' 在我为Windows稍微修改它之后,我一直收到这个错误消息 C:\>ruby -e 'File.open("c:\testnew", "w") { |f| f.write(File.read("c:\test")) }' 'f' is not recogni
ruby -e 'File.open("blahnew", "w") { |f| f.write(File.read("blah")) }'
在我为Windows稍微修改它之后,我一直收到这个错误消息
C:\>ruby -e 'File.open("c:\testnew", "w") { |f| f.write(File.read("c:\test")) }'
'f' is not recognized as an internal or external command, operable program or batch file.
有人能指出我的语法错误吗
解决方案
以下方法将起作用
ruby -e "File.open('c:/testnew', 'w') { |f| f.write(File.read('c:/test.txt')) }"
ruby -e "File.open('c:\testnew', 'w') { |f| f.write(File.read('c:\test.txt')) }"
ruby -e "File.open('c:\\testnew', 'w') { |f| f.write(File.read('c:\\test.txt')) }"
谢谢 在Windows上,您需要双引号
“
围绕您的ruby脚本。单引号对于Windows来说并不特殊,因此它将|f
部分解释为到f
的管道。如果您将单引号切换为双引号,或者将单引号切换为双引号,您可能就可以了。除了引号问题,您还可以在Windows上使用正斜杠。这更容易,因为否则你就得避开反斜杠。我不知道。感谢您的建议,将所有双报价替换为单报价,反之亦然。非常感谢。