截取字符串可以说是字符串处理功能中最常用的一个子功能:
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0123456789
echo 原字符串(第二行为各字符的序号):
echo %ifo%
echo 123456789012345678901234567890123456
echo 截取前5个字符:
echo %ifo:~0,5%
echo 截取最后5个字符:
echo %ifo:~-5%
echo 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
echo 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
echo 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
pause
取得的字符串的应用,如:替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串
@echo off
set aa=伟大的中国!我为你自豪!
echo 替换前:%aa%
echo 替换后:%aa:中国=中华人民共和国%
echo aa = %aa%
set "aa=%aa:中国=中华人民共和国%"
echo aa = %aa%
pause
文本有特殊字符,建议使用sed处理。下载:
http://www.pement.org/sed/gsed407x.zip
解压放到c:\windows\system32\,保存下面代码,放到A文件夹:
@echo off
cd.>测试文件.x
for /f "delims=" %%i in ('dir /b/s *.txt') do (
sed "s/.\(key[1-2]\)/\n\1/g" "%%i" | sed -n "/key[1-2]/p"
)>> 测试文件.x
start 测试文件.x
exit /b
------------------------------------------------------------
其实开始把问题说清楚,没必要绕这么多弯子。代码如下:
@echo off
cd.>测试文件.x
for /f "delims=" %%i in ('dir /b/s *.html *.txt') do (
sed -n "/