Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows上的Ruby单行程序语法错误_Ruby_Windows - Fatal编程技术网

Windows上的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单行程序脚本中的语法错误在哪里

下面是在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 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上使用正斜杠。这更容易,因为否则你就得避开反斜杠。我不知道。感谢您的建议,将所有双报价替换为单报价,反之亦然。非常感谢。