如何把附件中的三张表合并起来,要求是这样的:
如果在MAIN.TXT 中的第一列发现包含字符串“DEN” ,然后按照第二列的信息(ERP / SOL),则从 ERP.TXT 或 SOL.TXT中的内容调出一个记录,并加在MAIN.TXT 的第三列上。如果不符合条件,就不加任何数据项在第三列上。
结果大致是这样的:
MAIN.TXT
ADMIN , SOL ,
DDIC , SOL ,
DDIC , ERP ,
DDIC , ERP ,
DDIC , ERP ,
FIDEMO , ERP ,
J2EE_ADMIN , ERP ,
SAP* , ERP ,
SAP* , ERP ,
SAPUSER , ERP ,
SOLMAN , ERP ,
SPDEMO , ERP ,
SPDEMO , ERP ,
WDDEMO , ERP ,
WDDEMO , SOL ,
STUDENT01 , ERP , rqrew
STUDENT01 , ERP , ewe
STUDENT02 , SOL , 4312
STUDENT02 , SOL , 4431
STUDENT03 , ERP , fdfdd
STUDENT03 , ERP , kjlkj
STUDENT04 , SOL , 4554
STUDENT04 , SOL , 443
STUDENT05 , SOL , 78687
STUDENT05 , ERP , oioi
........
我想了好久,但是脚本老是不能正常运行。
参见帖子,http://www.cn-dos.net/forum/viewthread.php?tid=47136&pid=330725&page=1&sid=pyhnrc#pid330725
不过现在是3张表了,情况复杂了。
set ListName=ERP SOL
for %%i in (%ListName%) do (call :Add_record %%i)
GOTO :EOF
:: ++++++++++++++++++++++++++++++++++++++++++++++
:Add_record
setlocal enabledelayedexpansion
set n=
for /f "eol=# tokens=1" %%i in (%1.txt) do (
set /a n+=1
set NUM_!n!=%%i
)
set n=
for /F "eol=# tokens=1-3 delims=," %%A in (main.txt) do (
if "%%C"=="" (echo %%A|find /i "ENT")
if NOT ERRORLEVEL 1 if "%%B"=="%1" ( set /a n+=1
for %%G in (NUM_!n!) do (echo.%%A ,%%B , !%%C!<nul>>main.txt.tmp )
) else (
echo.%%A , %%B<nul>>main.txt.tmp)
)
copy /y Instance.cfg.tmp main.txt & del /f /q main.txt.tmp
endlocal
goto :eof
:: ++++++++++++++++++++++++++++++++++++++++++++++
[ Last edited by uiopuiop on 2009-4-25 at 07:25 ]
如果在MAIN.TXT 中的第一列发现包含字符串“DEN” ,然后按照第二列的信息(ERP / SOL),则从 ERP.TXT 或 SOL.TXT中的内容调出一个记录,并加在MAIN.TXT 的第三列上。如果不符合条件,就不加任何数据项在第三列上。
结果大致是这样的:
MAIN.TXT
ADMIN , SOL ,
DDIC , SOL ,
DDIC , ERP ,
DDIC , ERP ,
DDIC , ERP ,
FIDEMO , ERP ,
J2EE_ADMIN , ERP ,
SAP* , ERP ,
SAP* , ERP ,
SAPUSER , ERP ,
SOLMAN , ERP ,
SPDEMO , ERP ,
SPDEMO , ERP ,
WDDEMO , ERP ,
WDDEMO , SOL ,
STUDENT01 , ERP , rqrew
STUDENT01 , ERP , ewe
STUDENT02 , SOL , 4312
STUDENT02 , SOL , 4431
STUDENT03 , ERP , fdfdd
STUDENT03 , ERP , kjlkj
STUDENT04 , SOL , 4554
STUDENT04 , SOL , 443
STUDENT05 , SOL , 78687
STUDENT05 , ERP , oioi
........
我想了好久,但是脚本老是不能正常运行。
参见帖子,http://www.cn-dos.net/forum/viewthread.php?tid=47136&pid=330725&page=1&sid=pyhnrc#pid330725
不过现在是3张表了,情况复杂了。
set ListName=ERP SOL
for %%i in (%ListName%) do (call :Add_record %%i)
GOTO :EOF
:: ++++++++++++++++++++++++++++++++++++++++++++++
:Add_record
setlocal enabledelayedexpansion
set n=
for /f "eol=# tokens=1" %%i in (%1.txt) do (
set /a n+=1
set NUM_!n!=%%i
)
set n=
for /F "eol=# tokens=1-3 delims=," %%A in (main.txt) do (
if "%%C"=="" (echo %%A|find /i "ENT")
if NOT ERRORLEVEL 1 if "%%B"=="%1" ( set /a n+=1
for %%G in (NUM_!n!) do (echo.%%A ,%%B , !%%C!<nul>>main.txt.tmp )
) else (
echo.%%A , %%B<nul>>main.txt.tmp)
)
copy /y Instance.cfg.tmp main.txt & del /f /q main.txt.tmp
endlocal
goto :eof
:: ++++++++++++++++++++++++++++++++++++++++++++++
[ Last edited by uiopuiop on 2009-4-25 at 07:25 ]
附件

