我很难发现我的Ruby单线程脚本中的语法错误。
Ruby脚本可以在Linux上运行
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')) }"
谢谢!
答案 0 :(得分:2)
在Windows上,您需要在ruby脚本周围使用双引号"
。单引号对Windows不是特殊的,因此它将|f
部分解释为f
的管道。如果将单引号切换为双引号,则可能没问题,反之亦然。