回复 6# pcl_test - for /l %%i in (0 1 8190) do (
复制代码 其中的1 可以改为%n%吗? 因为不止要替换1个数,其中肯定会存在长度不同的字符串的。不过需要替换的数最多也就4位数,弄16位数有点多了,我改一下代码你看看行不。- set c=%a%43210
- set /a n=%c:~4,1%
复制代码 因为要循环,我把代码改了改:- @echo off&setlocal enabledelayedexpansion
- set a=1
- set b=@
- set c=%a%fedcba9876543210
- set /a n=0x%c:~15,1%
- call :0
- call :1
- cls&pause&exit
- :loop
- for /l %%i in (0 1 8190) do (
- if "!str:~%%i,%n%!" equ "%a%" (
- set /a m=%%i+n
- for %%j in (!m!) do echo;!str:~,%%i!%b%!str:~%%j!
- goto :eof
- )
- )
- :0
- for /f "delims=" %%a in ('more +35 "%~f0"') do (
- set "str=%%a"
- if "!str:%a%=!" equ "%%a" (
- echo;%%a
- ) else (
- if not defined f (
- call :loop
- setlocal
- set f=1
- ) else echo;%%a&pause&goto :eof
- )
- )
- :1
- set a=2
- set b=#
- set c=%a%fedcba9876543210
- set /a n=0x%c:~15,1%&endlocal
- call :0
- 11ad3inm1di33
- 3eir11eeed2e1
- 22131e3iee1en
复制代码 可是运行的时候,第一遍只会出现前两行,第三行到第二遍才出现。这是为什么? |