Windows上的Ruby单行语法错误

时间:2013-10-01 23:14:33

标签: ruby windows

我很难发现我的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')) }"

谢谢!

1 个答案:

答案 0 :(得分:2)

在Windows上,您需要在ruby脚本周围使用双引号"。单引号对Windows不是特殊的,因此它将|f部分解释为f的管道。如果将单引号切换为双引号,则可能没问题,反之亦然。