【发布时间】:2010-10-06 07:09:36
【问题描述】:
例如,我想在 rake 下运行以下命令。
robocopy C:\Media \\other\Media /mir
我能够开始工作的 rakefile 是
def sh(str)
str.tr!('|', '\\')
IO.popen(str) do |pipe|
pipe.each do |line|
puts line
end
end
end
task :default do
sh 'robocopy C:|Media ||other|Media /mir'
end
但是字符串文字的处理很尴尬。
如果我使用 heredoc 输入字符串文字
<<HEREDOC
copy C:\Media \\other\Media /mir
HEREDOC
我得到了错误
rakefile.rb:15: Invalid escape character syntax
copy C:\Media \\other\Media /mir
^
rakefile.rb:15: Invalid escape character syntax
copy C:\Media \\other\Media /mir
^
如果我使用单引号,反斜杠之一会丢失。
irb(main):001:0> 'copy C:\Media \\other\Media /mir'
=> "copy C:\\Media \\other\\Media /mir"
【问题讨论】:
标签: windows ruby command-line command rake