中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 12:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 字符串重复部分打印问题 求解 查看 700 回复 2
楼 主 字符串重复部分打印问题 求解 发表于 2010-03-19 15:44 ·  IANA 局域网IP(Private-Use)
新手上路
积分 2
发帖 2
注册 2010-03-10 15:02
16年会员
UID 161936
性别 男
状态 离线
文件内容如下
asdf1
asdf2
asdf3

如何求出相同部分即“asdf”

2 发表于 2010-03-19 16:08 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
你的问题说明和要求不够详细清楚,以一篇英文文章为例,忽略大小写的时候,就那么20多个字母,单词中出现相同的字母太多了,何况像e、a这样被更多频率使用的字母。
所以,估计你应该限定条件:从行首开始匹配。
3 发表于 2010-03-19 23:45 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,本批处理从行首开始匹配
2,本批处理没有对文本内含有敏感字符的情况进行处理
3,被处理的源文件为data.txt
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%l in (data.txt) do >>gu.h echo %%l
:han
set/p H=<gu.h
if not "!H:~%n%,1!"=="" set/a n+=1&goto han
for /l %%i in (1 1 %n%) do set i=%%i&set/a a=%%i-1&set "t=!H:~0,%%i!"&for /f "skip=1 delims=" %%l in (gu.h) do set l=%%l&set "l=!l:~0,%%i!"&if not "!l!"=="!t!" goto :ye
echo 完全相同"%H%"&goto :xing
:ye
if %i%==1 (echo 不存在相同) else echo 相同为"!H:~0,%a%!"
:xing
del gu.h
pause


[ Last edited by Hanyeguxing on 2010-3-19 at 23:54 ]
论坛跳转: