5

如何检查路径是否有引号,如果没有则添加?我知道我可以做类似的事情:

set /p path="My path "
"%path%"

但我有引号问题

C:\My folder --> "%path%" --> "C:\My folder" --> Good

如果用户放置带引号的路径

"C:\My folder" --> "%path%" --> ""C:\My folder"" --> Wrong

我不能使用双引号,因为我调用的外部命令行不起作用并给我错误。那么只有在路径中找不到时,我如何才能添加“”?谢谢

4

4 回答 4

4

您可以在使用前删除报价,尝试:

set path=%path:"=%

path已经没有报价了。

例子:

@echo off

set path="a b c"

set path=%path:"=%

echo %path%

输出

a b c
于 2013-04-19T15:03:55.170 回答
1

无法测试这一点,因为我正在用手机写信,但你不能假设有双引号并进行查找和替换:

set path=%path:""="%
于 2013-04-19T15:07:58.837 回答
1
  for /f "delims=" %%i in ("%var%") do set "var=%%~i"
  echo %var%

%var% 在 for 循环之后没有双引号。

顺便说一句:您不应该将 cmd 命令用作批处理变量(PATH)。

于 2013-04-19T15:29:19.490 回答
1

删除所有引号,然后在其周围添加引号:

set path=^"%path:"=%^"

插入符号( ^) 用于转义引号的特殊含义,因此set会将它们包含在变量中。

于 2013-04-20T02:15:23.107 回答