尾部空格bug:
若变量f值字符串中尾部含有空格,如何将其忽略而保留中间空格符?
运行过程:
1.判断变量a值总字符串长度。
2.取长度值进行单个负判断,当识别到不是空格后,将剩余未识别字符串总长度输出至变量b,包括空格符。
3.利用变量b的 长度值 ,提取剩余字符串输出至变量f。
4.f值最后被用于强制输出。
最终运行结果如下:
若变量f值字符串中尾部含有空格,如何将其忽略而保留中间空格符?
修复代码:
@echo off&setlocal enabledelayedexpansion
set a=ad 我
for /l %%a in (0,1,65535) do if "!a:~%%a,1!"=="" set /a b=%%a-1&goto a
:a
for /l %%a in (%b%,-1,0) do if not "!a:~%%a,1!"==" " set /a b=%%a+1&goto b
:b
for /f "delims=" %%a in ("%b%") do set f=!a:~0,%%a!
for /l %%a in (0,1,20) do if not "!f:~%%a,1!"=="" (set /p=!f:~%%a,1!<nul>c.txt&if "!f:~%%a,1!"==" " set /p=a<nul>c.txt)&for /f "delims=" %%a in ('dir c.txt^|find "文"') do set c=%%a&if not "!c:~34,1!"=="0" echo !c:~34,1!
pause>nul
运行过程:
1.判断变量a值总字符串长度。
2.取长度值进行单个负判断,当识别到不是空格后,将剩余未识别字符串总长度输出至变量b,包括空格符。
3.利用变量b的 长度值 ,提取剩余字符串输出至变量f。
4.f值最后被用于强制输出。
最终运行结果如下: