bat命令,按要求截取字符串,并合并。

2024-11-05 22:06:07
推荐回答(2个)
回答(1):

截取字符串可以说是字符串处理功能中最常用的一个子功能:
@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

回答(2):

文本有特殊字符,建议使用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 "/]*>/,/<\/table>/p" "%%i"
) >> 测试文件.x
start 测试文件.x
exit /b