字符串截取功能批处理



::code by lxmxn @ cn-dos.net .
::目的:帮助新手们更好的理解变量字符截取功能.
::Date 2006-12-16 .
::说明:有的变量截取之后值为空,这是正常的.
::
@echo off&setlocal EnableDelayedexpansion
::设置变量var的值:
set var=0123456789ABCDEF
call :begin
for /l %%a in (1,3,15) do (
for /l %%b in (1,4,15) do (
call :printf %%a %%b
)
)
call :begin
for /l %%a in (1,4,15) do (
for /l %%b in (-1,-3,-15) do (
call :printf %%a %%b
)
)
call :begin
for /l %%a in (-2,-3,-15) do (
for /l %%b in (1,4,15) do (
call :printf %%a %%b
)
)
call :begin
for /l %%a in (-1,-4,-15) do (
for /l %%b in (-2,-3,-15) do (
call :printf %%a %%b
)
)
pause
endlocal&cls&echo.
echo 演示结束了,任意键退出……
pause>nul
goto :eof

::输出结果:
:printf
echo %%var:~%1,%2%% 截取之后的字符为: !var:~%1,%2!
goto :eof

::清理屏幕:
:begin
echo&pause&cls&echo.
echo 变量var的值为: %var%
echo.
goto :eof

生成0-99之间的随机数列
::生成0-99之间的随机数列R1::::::@echooffsetlocalEnableDelayedExpansion::初始化顺序数列for/l%%iin(0,1,99)do(setrnum%%i=%%i)::对数列进行随机交换for/l%%iin(0,1,99)do(set/arnd=!ra

用指定字符串替换指定内容
@echooffsetlocalenabledelayedexpansionsetfile=set/pfile=请输入要操作的文件名称(包括扩展名):set"file=%file:"=%"for%%iin("%file%")dosetfile=%%~fiecho.setreplaced=set/preplaced=请输

用某行内容替换特定字符
@echooff::用A.TXT中的第一行字符,替换B.TXT中的###字符.::再用A.TXT中的第二行字符,替换B.TXT中的@@@字符.::……::如果A.txt第M行中含有在第N行中要替换的内容S(M