批量路径与行情

时间:2013-04-19 14:58:44

标签: batch-file

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

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

但我的引号有问题

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

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

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

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

4 个答案:

答案 0 :(得分:4)

您可以在使用之前删除引用,请尝试:

set path=%path:"=%

path已经没有引用了。

示例:

@echo off

set path="a b c"

set path=%path:"=%

echo %path%

输出

a b c

答案 1 :(得分:1)

我不能在手机上写字时对此进行测试,但是你不能假设有双引号并且做了一个查找&替换:

set path=%path:""="%

答案 2 :(得分:1)

  for /f "delims=" %%i in ("%var%") do set "var=%%~i"
  echo %var%

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

顺便说一下:你不应该使用cmd命令作为批处理变量(PATH)。

答案 3 :(得分:0)

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

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

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