如何在Windows命令行中用百分比替换空格字符?

时间:2018-10-29 12:13:04

标签: cmd

我想了解如何在Windows命令行中用%替换空格字符。

我目前有这个:

setlocal enabledelayedexpansion
set /P MY_TEXT=ENTER TEXT:
SET SPACE 2PROCENT=
set NEW_TEXT=%MY_TEXT: =test% 
MSG * %NEW_TEXT%

结果如下:SETtestSPACEtest2PROCENT =

但是,如果我尝试将其替换为百分比:

setlocal enabledelayedexpansion
set /P MY_TEXT=ENTER TEXT:
SET SPACE 2PROCENT=
set NEW_TEXT=%MY_TEXT: =%%% 
MSG * %NEW_TEXT%

我得到的结果是:SET SPACE 2PROCENT = %%

因此,我知道如果我想在命令行中获取%,通常我需要放两个百分比(%%)。但是,在这种情况下,我想在我的代码中在另外两个%之间传递%%。我的问题是代码将以%开头并找到第一个%,然后停止代码。

如何在其他两个%之间插入一个%来替换空格字符?

谢谢。

1 个答案:

答案 0 :(得分:1)

您的代码无效。您必须编写(第二次,您想用2个百分号(%-> %%)替换空格):

@echo off
setlocal enabledelayedexpansion
set /P "MY_TEXT=ENTER TEXT: "
SET "SPACE 2PROCENT="
set "NEW_TEXT=!MY_TEXT: =%%%%!"
rem The above only for the 2nd piece of code provided.
MSG * %NEW_TEXT%

如果您希望您提供给我们的第一段代码能够正常工作,那么这就是您必须编写的:

@echo off
setlocal enabledelayedexpansion
set /P "MY_TEXT=ENTER TEXT: "
SET "SPACE 2PROCENT="
set "NEW_TEXT=!MY_TEXT: =test%%!"
MSG * %NEW_TEXT%

希望这会有所帮助!