1,if的语法是 if 1==1 echo.等于,而不是if 1=1 echo.等于。是if的语法错了,和for没关系
2,stokens=应该写成tokens=
3,尽量少嵌套if......else......,免得出错
4,尽量不要for嵌套去解析文件,你的代码完全可以写成:
@echo off&setlocal enabledelayedexpansion
for /f "skip=1 tokens=1-4 delims=:|" %%a in ('findstr /n .* "c:\a.ini"') do set "#%%a=%%b %%c %%d"
(for /f "skip=1 tokens=1-4 delims=:|" %%i in ('findstr /n .* "c:\b.ini"') do if /i "!#%%a!"=="%%b %%d %%c" (echo.相同)else echo.不同)>输出.txt
如果文本内第一列的内容完全不同,可以写成:
@echo off&setlocal enabledelayedexpansion
for /f "skip=1 tokens=1-3 delims=|" %%a in (c:\a.ini) do set "#%%a=%%b %%c"
(for /f "skip=1 tokens=1-3 delims=|" %%i in (c:\b.ini) do if /i "!#%%a!"=="%%c %%b" (echo.相同)else echo.不同)>输出.txt
Last edited by Hanyeguxing on 2010-5-12 at 14:16 ]