本帖最后由 踏沙行 于 2018-7-26 14:22 编辑
代码一,可以正常运行
如下:- @echo off
- setlocal enabledelayedexpansion
- set /p str=<a.txt
-
- ::[方法1]
- set mx=50
- for /l %%a in (0,1,%mx%) do if "!str:~%%a,1!"=="" set num=%%a &goto ok
- :ok
- echo 长度=%num%
- ::pause
-
- ::[方法2]
- set /a st=0
- :loop
- if "!str:~%st%,1!" neq "" set /a st+=1&goto loop
- echo,len=%st%
- ::pause
-
- echo.[方法3]
- set /a n=8192*2,max=1
- set "var="
- pause
- for /l %%a in (1 1 14) do (
- if defined var set /a n=var
- echo n=%n%
- pause
- )
复制代码 代码二,无法正常运行,其中[方法3]中的echo n=%n%一句根本不执行- @echo off
- setlocal enabledelayedexpansion
- set /p str=<a.txt
-
- ::[方法1]
- set mx=50
- for /l %%a in (0,1,%mx%) do if "!str:~%%a,1!"=="" set num=%%a &goto ok
- :ok
- echo 长度=%num%
- ::pause
-
- ::[方法2]
- set /a st=0
- :loop
- if "!str:~%st%,1!" neq "" set /a st+=1&goto loop
- echo,len=%st%
- ::pause
-
- echo.[方法3]
- set /a n=8192*2,max=1
- set "var="
- pause
- for /l %%a in (1 1 14) do (
- if defined var set /a n=var
- echo n=%n%
- pause
- set /a n/=2
- for %%i in (!n!) do (
- if "!str:~%%i,1!=="" (set /a var=n) else (
- set str=!str:~%%i!
- set /a max+=%%i,var-=%%i
- )
- )
- )
- endlocal
- echo 长度: %max%
- pause
复制代码 不知道错在哪里了?
使用diffy语句全文比较,代码二前面部分和代码一是完全一致的 |