我想了解如何在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 = %%
因此,我知道如果我想在命令行中获取%,通常我需要放两个百分比(%%)。但是,在这种情况下,我想在我的代码中在另外两个%之间传递%%。我的问题是代码将以%开头并找到第一个%,然后停止代码。
如何在其他两个%之间插入一个%来替换空格字符?
谢谢。
答案 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%
希望这会有所帮助!