我正在使用此目录设置变量
C:\My dir\Sub dir\Folder with a lot of spaces\file.html
像这样:
SET location="C:\My dir\Sub dir\Folder with a lot of spaces\file.html"
问题是,当我回显%location%
时,它带有两个双引号。我试图删除使用它:
set location=%location:"=\"%
但它不起作用。我搜索了很多,我找不到一个简单而简单的解决方案。我正在使用Windows 8。
答案 0 :(得分:2)
一个简单而简单的解决方案是存储没有引号的路径,如下所示:
SET "location=C:\My dir\Sub dir\Folder with a lot of spaces\file.html"
这样,该值将不带引号存储,SET语句仍将受到保护,不受某些特殊字符的影响。然后,您可以将%location%
括在引号中,也可以根据需要省略引号。例如,如果您使用该值作为某个命令的参数,则可能需要在其周围加上引号:
somecommand "%location%" …
…
如果您只需要输出路径,那么引号可能是不必要的 - 并且很容易将它们排除在外:
ECHO Location: %location%
…
请注意,如果路径包含具有特殊含义的字符,例如&
,则在没有引号的情况下ECHOing路径将导致在%
评估中解释此类字符。为避免这种情况,您可以暂时启用并使用延迟扩展:
SETLOCAL EnableDelayedExpansion
ECHO Location: !location!
ENDLOCAL
…
答案 1 :(得分:1)
使用set "location=C:\My dir\Sub dir\Folder with a lot of spaces\file.html"
保留空格,但不加双引号。
答案 2 :(得分:0)
请勿在{{1}}中使用引号。
稍后当您使用该变量时,请在其周围加上引号,例如
Set
这也删除了引号
type "%location%"
你认为我用反斜杠和引号替换引号,不是很有用。
为什么甚至把它变成一个变量?