Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Вот, теперь всё предельно чётко, так бы сразу и сформулировали.
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
Set Path=%Path%;%CD%\bin

Set XMLPath=D:\Temp\xmlfiles

For /F "delims=" %%F In ('Dir "%XMLPath%\*.xml" /B 2^>nul') Do (
	Set Prefix=&Set InsuranceNumber=0
	For /F "tokens=1,2 delims=_" %%P In ("%%~F") Do (Set Prefix=%%P)
	For /F "tokens=2 delims=><" %%N In ('grep -Eo "<InsuranceNumber>[^<]*</InsuranceNumber>" "%XMLPath%\%%F"') Do (
		If Not %%N==/InsuranceNumber Set InsuranceNumber=%%N
	)
	Call :StringLen "!InsuranceNumber!"
	If !$StringLen!==5 (Echo !Prefix!_!InsuranceNumber!>>"result_5and6.txt")
	If !$StringLen!==6 (Echo !Prefix!_!InsuranceNumber!>>"result_5and6.txt")
	If Not !$StringLen!==5 (
		If Not !$StringLen!==6 (
			Echo !Prefix!_!InsuranceNumber!>>"result_other.txt"
		)
	)
)
Pause&Exit

:StringLen
:: Автор функции - amel27, http://forum.oszone.net/post-1162296-2.html
   Set $StringLen=0&Set $StringBuf=%~1
   If ""=="%~1" GoTo :EOF
:StringLenLoop
   Set /A $StringLen+=1
   Call Set $StringChr=%%$StringBuf:~%$StringLen%%%
   If ""=="%$StringChr%" GOTO :EOF
GoTo :StringLenLoop
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:47, 06-07-2012 | #11