从批处理文件中的变量中删除双引号
在批处理文件中,包含多个单词或空格的变量必须放在双引号中,但有时,我们不希望在输出中看到这些引号。 这些引号可以从批处理文件中的变量中删除。
有很多方法可以从变量中删除双引号。 有些方法会导致 CMD 环境出现问题,这可能会导致批处理文件出错。
我们将讨论所有的方法和可能性。 本教程将讨论从批处理文件中的变量中删除双引号。
在批处理文件中使用波浪字符删除双引号
可以使用波浪号 (~
) 字符从批处理文件中的变量中删除双引号。 波浪号 (~
) 字符在批处理文件中以多种方式使用。
除了删除参数引号外,它还用于从批处理文件中的字符串变量中提取子字符串。 要从变量中删除引号,请在需要从中删除引号的命令行参数之前使用 %~。
它从参数中删除任何周围的引号。
set A=%~1
set parameters=%~2 %~3
%A% %parameters%
此处,%1
指定传递给批处理文件的第一个命令行参数,%2
指定第二个命令行参数,依此类推。 它只处理 %9 之前的参数。
但是,此方法仅适用于传递到批处理文件中的命令参数,不适用于变量。 用户经常将此用于变量,导致批处理文件执行期间出错。
从批处理文件中的变量中删除所有周围的双引号
从变量中删除双引号的另一种方法是在批处理文件中使用 %var:"=% 。这可用于从任何字符串或变量中删除双引号。
您可以从任何一端删除引号,即外部引号,或一次删除所有引号。 基本语法将是:
set variable=%variable:"=%
以下示例显示如何从批处理文件中的变量中删除所有引号:
set var1="Hello World"
set var1
set var1=%var1:"=%
set var1
PAUSE
但是如果变量有一个 &
字符,上面的代码将不起作用。
除了从变量中删除双引号外,您还可以将它们替换为单引号或任何其他字符。 您还可以使用上面的代码替换变量中的单词。
在批处理文件中用单引号替换双引号
要用单引号替换双引号,请在等号后添加单引号,如下例所示。
set var1="Hello World"
set var1
set var1=%var1:"='%
set var1
PAUSE
从批处理文件中的变量中替换单词
要用任何其他单词替换批处理文件中变量中的单词,请修改上面的代码,如以下示例所示:
set var1="Hello World"
set var1
set var1=%var1:World=Hannah%
set var1
PAUSE
在批处理文件中使用 FOR 循环删除双引号
也可以使用批处理文件中变量的 for 循环删除双引号。 在您的批处理文件中添加以下行,如下例所示,以从变量中删除任何双引号。
SET var1="Hello World"
ECHO %var1%
FOR /F "delims=" %%I IN (%var1%) DO SET new_var1=%%I
ECHO %new_var1%
PAUSE
您还可以创建一个批处理文件,其中包含 FOR 循环的单行代码以删除双引号并将其另存为 .cmd 文件。 此外,使用 CALL 命令,您可以直接在另一个批处理文件中使用它来从变量中删除双引号。
因此,我们讨论了如何使用不同的方法从批处理文件中的变量中删除双引号。 此外,每种方法的末尾都提到了限制。