在批处理文件中用 % 替换特殊字符

replace special characters with % in batch file

任何人都可以帮助如何替换包含 space,(,-,) 等特殊字符的字符串。 假设我有一个字符串:

str=A Room Has (1 level) - (2 - leve) Rooms

Output string should be like:

str=A%Room%Has%%1%level%%%%2%%%leve%%Rooms

这应该有效:

set "str=A Room Has (1 level) - (2 - leve) Rooms"
set "str=!str:-=%%!"
set "str=!str:(=%%!"
set "str=!str:)=%%!"
set "str=!str: =%%!"

这样试试:

@echo off
set "str=A Room Has (1 level) - (2 - leve) Rooms"
echo Before string substitution :   %str%
pause
setlocal EnableDelayedExpansion
set "str=!str:-=%%!"
set "str=!str:(=%%!"
set "str=!str:)=%%!"
set "str=!str: =%%!"
Color 0A
echo After string substitution  :   !str!
pause