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

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

Ветеран


Contributor


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

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


surgutfred, Немного изменил постановку
Скрипт выберет все файлы с признаком:
"ОВК-Ф" и сделает для них процедуру :Fstr1
"ОВМ-Ф" и сделает для них процедуру :Fstr2
Если таких признаков куча, соответственно будут делаться :Fstr(с другими номерами)
Если в файлах ни одного признака не найдено, сделается процедура :FstrNo
То есть можно иметь и смесь файлов с разными признаками, и корректно их обработать
Вот код
Код: Выделить весь код
@Echo Off
cls
	>nul chcp 1251
	Set "BoxIn=Z:\Box_In\File"
	Set "Ext=.din"

	Set "Fstr="ОВК-Ф" "ОВМ-Ф""

	Set /A i=0
	Set /A Log=0
	If Not Exist "%BoxIn%\*%Ext%" Echo "%BoxIn%\*%Ext%" not found &Exit /B 1
	For %%p In (%Fstr%) Do (
		Call Set /A i+=1
		FOR /F "usebackq delims=" %%f IN (`FIND /C /I %%p "%BoxIn%\*%Ext%"`) Do Call :Finder "%%f" "%Ext%" %%p
	)
	If %Log%==0 Call :FstrNo %Fstr%
pause
GoTo :Eof

:Finder
	Set "N=%~1"
	Call Set "N=%%N:*%~2: =%%"
	Set "File=%~1"
	Set "File=%File:*-- =%"
	Call Set "File=%%File:: %N%=%%"

	If Not "%N%"=="0" Set /A Log=1 &Call :Fstr%i% "%File%" %3
GoTo :Eof

:Fstr1
	Echo "ОВК-Ф" %2 %1
GoTo :Eof

:Fstr2
	Echo "ОВМ-Ф" %2 %1
GoTo :Eof

:FstrNo
	Echo no files with %*
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 18-09-2018 в 17:21.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:02, 18-09-2018 | #13