我有两个字符串变量:
@echo off
set string_1=abc def ghj
set string_2=abc_def_ghj
在string_1
我需要用%20
替换空格,结果将是:
abc%20def%20ghj
在string_2
我需要用空格替换_
,结果将是:
abc def ghj
我需要使用批处理(.bat)文件,有什么选择呢?
答案 0 :(得分:2)
Variable Edit/Replace最小化EnableDelayedExpansion范围:
@ECHO OFF
SETLOCAL enableextensions
set "string_1=1abc def ghj"
SETLOCAL enabledelayedexpansion
set "string_1=!string_1: =%%20!"
ENDLOCAL&set "string_1=%string_1%"
echo %string_1%
set "string_2=2abc_def_ghj"
set "string_2=%string_2:_= %"
echo %string_2%
注意ENDLOCAL&set "string_1=%string_1%"
行(不要更改)。
输出:
==>30087503.bat
1abc%20def%20ghj
2abc def ghj
答案 1 :(得分:1)
您可以使用string manipulation替换所需的字符。
@echo off
setlocal enabledelayedexpansion
set "string_1=abc def ghj"
set string_2=abc_def_ghj
set new_string_1=!string_1: =%%20!
set new_string_2=%string_2:_= %
echo Old String 1: %string_1%
echo New String 1: %new_string_1%
echo Old String 2: %string_2%
echo New String 2: %new_string_2%
pause
我必须在字符串1中启用延迟扩展,以便内部和外部百分号不会相互抵消。