我试图制作一个简单的批处理文件,扫描变量 X 中是否有空格,然后创建一个不包含任何空格的修改变量 Xmodified。这是我使用的代码:
@echo off
set Xmodified=[
set "X=I am good"
:space1
IF "%X:~0,1%" == " " ( goto space2 ) Else ( set Xmodified=%Xmodified%%X:~0,1% )
goto space2
:space2
IF "%X:~1,1%" == " " ( goto space3 ) Else ( set Xmodified=%Xmodified%%X:~1,1% )
goto space3
:space3
IF "%X:~2,1%" == " " ( goto space4 ) Else ( set Xmodified=%Xmodified%%X:~2,1% )
goto space4
:space4
IF "%X:~3,1%" == " " ( goto space5 ) Else ( set Xmodified=%Xmodified%%X:~3,1% )
goto space5
:space5
IF "%X:~4,1%" == " " ( goto space6 ) Else ( set Xmodified=%Xmodified%%X:~4,1% )
goto space6
:space6
IF "%X:~5,1%" == " " ( goto space7 ) Else ( set Xmodified=%Xmodified%%X:~5,1% )
goto space7
:space7
IF "%X:~6,1%" == " " ( goto space8 ) Else ( set Xmodified=%Xmodified%%X:~6,1% )
goto space8
:space8
IF "%X:~7,1%" == " " ( goto space9 ) Else ( set Xmodified=%Xmodified%%X:~7,1% )
goto space9
:space9
IF "%X:~8,1%" == " " ( goto Finishing ) Else ( set Xmodified=%Xmodified%%X:~8,1% )
goto Finishing
:Finishing
set Xmodified=%Xmodified:~1%
goto Display
:Display
cls
echo Your Processed Result:%Xmodified%
pause >nul
输出:
Your Processed Result: I a m g o o d
有人能告诉我为什么输出的每个字母后面都有空格吗?这些空格是从哪里来的?
我怎样才能使输出像这样?
Your Processed Result:Iamgood
请帮忙。谢谢。
答案1
如何从变量中删除空格?
如果您要使用for
或if
(其中有使用括号的表达式),那么您将需要使用延迟扩展。
然而,有一个更简单的解决方案,可以一次性删除所有空格:
@echo off
setlocal
set "X=I am good"
set _result=%X: =%
echo %_result%
endlocal