@echo off&setlocal ENABLEDELAYEDEXPANSION
for /f %%i in (A.txt) do (
set str=%%i
for /f "tokens=1 delims==" %%k in (B.txt) do (
if "%%k"=="!str:~1!" echo "It is the same" else echo %%k
)
)
但是运行没结果,说明在字符串比较方面有问题啊?
[ Last edited by coldface on 2010-9-7 at 14:54 ]作者: slore 时间: 2010-9-7 16:48 两个循环不是嵌套的。。。是顺序的。作者: coldface 时间: 2010-9-7 17:47 那这个不知道怎么写了
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /f %%i in (3.txt) do set str1=%%i
for /f "tokens=1* delims==" %%k in (4.txt) do
(
if "%%k"=="!str1!"....作者: coldface 时间: 2010-9-7 20:58 帮忙下
谢谢作者: slore 时间: 2010-9-7 22:57 @echo off&setlocal ENABLEDELAYEDEXPANSION
for /f "eol=[ delims=" %%i in (1.txt) do set "OLD_%%i"
for /f "eol=[ tokens=1,2 delims==" %%i in (2.txt) do (
if "!OLD_%%i!"=="" (
echo %%i 为新属性
) else (
if not "%%j"=="!OLD_%%i!" (
echo %%i=%%j 不同与 !OLD_%%i!
)
)
)
pause
你运行BC12.BAT你看下结果。作者: coldface 时间: 2010-9-8 14:04 恭喜你答对,是我文件太长,我那会是截取了一部分做的比对。
变量个数的最多数量可以修改么?作者: DXSX 时间: 2010-9-10 11:56 @echo off & setlocal ENABLEDELAYEDEXPANSION
set n=0
set m=0
set P=0
for /f "tokens=1,2* delims==" %%c in (a.txt) do (
set /A P=!P!+1
set Q=0
for /f "tokens=1,2* delims==" %%f in (b.txt) do (
set /A Q=!Q!+1
if %%c*==%%f* (
set /a m=!m!+1
if %%d%%e==%%g%%h (
if %%g*==* (echo %%f) else (echo %%f=%%g%%h)
) else (set /a n=!n!+1)
)
)
)
echo.
echo.
echo A.TXT有%P%行内容,B.TXT有%Q%行内容
echo A.TXT的各行项目中B.TXT也有的共:%m%个,其中项目值不一致的:%n%个
:end
ENDLOCAL
要求 A.TXT/B.TXT 中项目是唯一的,即一个文件中不能有多个相同名字的项目。
[ Last edited by DXSX on 2010-9-10 at 12:49 ]作者: coldface 时间: 2010-9-11 01:56 谢谢,上面有两处没看明白是什么意思。
1.if %%g*==* 这句*代表啥?代表以%%g为前缀么?
2.那几个m,n,p的变量的作用是什么?作者: DXSX 时间: 2010-9-12 08:54
Quote:
Originally posted by coldface at 2010-9-11 01:56:
谢谢,上面有两处没看明白是什么意思。
1.if %%g*==* 这句*代表啥?代表以%%g为前缀么?
2.那几个m,n,p的变量的作用是什么?