2014-12-04 28 views
0

\我有以下路徑:E:\Path\Reports.紅寶石單反斜線存儲在變

如果我想這個路徑保存在紅寶石的變量,我需要使用「\\」:

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

有沒有辦法避免在變量中使用「\\」,並且仍然有正確的路徑?

+0

所以,你想要寫一個反斜槓逃逸無它? – August 2014-12-04 23:37:19

+0

我想要做的是能夠有這樣的東西:$ location =「E:\ Path \ Reports」,變量的值仍然是「E:\ Path \ Reports」 – user3566591 2014-12-04 23:49:08

回答

0

單引號字符串解釋\作爲文字字符,而不是一個轉義字符(除\',這是'直譯):

$location = 'E:\Path\Reports' 
+0

http:// en。 wikibooks.org/wiki/Ruby_Programming/Strings#Single_quotes說不然。 – knrz 2014-12-04 23:54:41

+0

大多數情況下,您不需要使用第二個轉義序列,除非它在字符串的末尾。 – August 2014-12-04 23:58:51

1

如果你使用這個

location = 'E:\path\Reports' 

它將自動爲你逃脫

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. 

這也有使您的代碼獨立於操作系統的好處。

+0

這也工作得很好。 – user3566591 2014-12-05 19:44:21

1

可以使用%q

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

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

=> puts $location 
E:\Path\Reports 
+0

該解決方案也適用。 – user3566591 2014-12-05 19:43:41