0

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

谢谢!

4

1 回答 1

2

"在 Windows 上,您的 ruby​​ 脚本需要双引号。单引号对 Windows 来说并不特殊,因此它将|f部分解释为f. 如果您将单引号切换为双引号,您可能会没事,反之亦然。

于 2013-10-01T23:23:31.243 回答