存储在变量中的Ruby Single BackSlash

时间:2014-12-04 23:33:24

标签: ruby

\我有以下路径:E:\Path\Reports.

如果我想将此路径存储在ruby中的变量中,我需要使用“\\”:

$location = "E:\\Path\\Reports"

有没有办法避免在变量中使用“\\”并且仍然有正确的路径?

4 个答案:

答案 0 :(得分:1)

如果你使用这个

location = 'E:\path\Reports'

它将自动为您转义

答案 1 :(得分:1)

更简单的方法是使用File.join。它将使用/,但Ruby将负责将其转换为Windows下的\

$location = File.join('E', 'Path', 'Reports')
# $location is actually 'E/Path/Reports' now,
# but Ruby knows to convert the '/' to '\' on Windows.

这也有助于使您的代码与操作系统无关。

答案 2 :(得分:1)

您可以使用%q

$location = %q{E:\Path\Reports}

=> $location
"E:\\Path\\Reports"

=> puts $location
E:\Path\Reports

答案 3 :(得分:0)

单引号字符串将\解释为文字字符,而不是转义字符(\'除外,字面上为'):

$location = 'E:\Path\Reports'