修复代码如下:
由于set /p=中的值无法以空格符输出,而无法判断字节数。因空格为英文标点符号,字节数为1,a为英文字符,字节数相同为1,故强制以a输出。
那么通过if判断值为空格后强制输出为a,则达到输出后判断“空格”字节为1的效果。
后续待解决bug:
若变量f值字符串中尾部含有空格,如何将其忽略而保留中间空格符?
预解决方案:
首先通过忽略尾部空格,二次输入至变量f,再进行判断字节数
@echo off&setlocal enabledelayedexpansion
set f=ad 我
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
由于set /p=中的值无法以空格符输出,而无法判断字节数。因空格为英文标点符号,字节数为1,a为英文字符,字节数相同为1,故强制以a输出。
那么通过if判断值为空格后强制输出为a,则达到输出后判断“空格”字节为1的效果。
后续待解决bug:
若变量f值字符串中尾部含有空格,如何将其忽略而保留中间空格符?
预解决方案:
首先通过忽略尾部空格,二次输入至变量f,再进行判断字节数