XML 파일을 구문 분석하고 추출 된 데이터 (압축을 푼 파일)가있는 파일을 만드는 배치 스크립트가 있습니다.방금 만든 파일을 처리 할 때 마지막 줄이 왜 처음입니까?
동일한 배치 스크립트에서 추출한 파일을 사용하여 SQL 명령 (SQL 파일)이있는 파일을 만듭니다.
SQL 파일을 만들 때 추출 된 파일의 마지막 레코드 (줄)가 먼저 나오고 명령문이 올바르게 작성됩니다.
마지막 레코드를 가져 오는 것을 중단하려면 어떻게해야합니까? buildsql?
@echo off
echo Beginning parsing of XML files for pagecount and docid extraction.
echo Processing...
SET /A counter = 0
FOR /F %%i IN (CDIZeroPage.TXT) DO (
IF EXIST %%i (
FOR /F "tokens=12 delims==" %%h IN (%%i) DO (CALL :pagestring %%h)
FOR /F "tokens=8 delims==" %%g IN (%%i) DO (CALL :docidstring %%g)
)
)
goto buildsql
:pagestring
echo %1 >> C:\Richtemp\PagesandDocs.txt
CALL set page=%1
goto :eof
:docidstring
echo %1 >> C:\Richtemp\PagesandDocs.txt
CALL SET docid=%1
SET /A counter+=1
goto :eof
:buildsql
echo End extracting pagecount and docid.
echo Number of files processed %counter%
echo
echo Begin building SQL
echo Processing...
SET /A counter=0
SET /A countbytwo=0
FOR /F %%i IN (PagesandDocs.txt) DO (
CALL :subroutine %%i
SET /A counter+=1
)
goto endofscript
:subroutine
SET /A countbytwo+=1
IF %countbytwo%==1 (
FOR /F "DELIMS=" %%G IN ('ECHO %1') DO (SET page=%%~G)
echo Update documents set pagecount = %page% >> C:\Richtemp\Update.txt
)
IF %countbytwo%==2 (
FOR /F "DELIMS=" %%G IN ('ECHO %1') DO (SET docid=%%~G)
echo where uniqueid = %docid% ^; >> C:\Richtemp\Update.txt
SET /A countbytwo=0
)
goto :eof
:endofscript
SET /A counter/=2
echo End building sql, number of scripts built %counter%
:eof
예, 지나치게 복잡했습니다. 나는 그것을 슬림 화하여 한꺼번에 두 파일을 썼다. 나는 왜이 판에서 마지막 기록이 처음으로 쓰여졌는지를 판단 할 수 없었다. 설명해 주셔서 감사합니다. 스크립트 작성에 도움이 될 것입니다. –