Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


Contributor


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

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


Если надо идентичность файлов
Код: Выделить весь код
@Echo Off
Cls
	Set "FileIn=Z:\Soft_In\1.txt"
	Set "FileOut=Z:\Soft_In\2.txt"

	Set "Reestr=2, 5, 7, 15, 17, 19, 23, 31, 35"
	Set /A Tsec=10
	
	Set "SR=="
	For %%i In (%Reestr%) Do Call Set "SR=%%SR%%%%i="
	:Begin1
		Call :NoFile "%FileIn%" %Tsec% ||GoTo :Begin1

		3<"%FileIn%" (Set /p SIn=<&3)
		Call :Found "%SIn%" "%SR%" %Tsec% ||GoTo :Begin1

		>nul Move /Y "%FileIn%" "%FileOut%"
		Set "SInNew=%SIn%"
	:Begin2
		Call :NoFile "%FileIn%" %Tsec% ||GoTo :Begin2

	3<"%FileIn%" (Set /p SInNew=<&3)

	If     "%SInNew%"=="%SIn%" Echo +++ Файлы "%FileIn%" "%FileOut%" одинаковые. Что дальше - не знаю :) &Pause &Exit /b 0
	If Not "%SInNew%"=="%SIn%" Echo --- Файлы "%FileIn%" "%FileOut%" разные.     Что дальше - не знаю :) &Pause &Exit /b 1
GoTo :Eof

:NoFile
	If Not Exist %1 (
		Echo --- Нет файла %1
		Timeout /T %~2
		Exit /B 1 &Rem Файла нет
	)
Exit /B 0

:Found
	For %%i In (%~1) Do >Nul (Echo %~2|Find "=%%i=")||(
		Echo --- Нет %%i в реестре значений
		Timeout /T %~3
		Exit /B 1 &Rem Что-то не найдено в реестре значений
	)
Exit /B 0
Если надо одинаковые числа в файлах вне зависимости от порядка
Заменить выделенный кусок предыдущего кода
Код: Выделить весь код
	:Begin2
		Call :NoFile "%FileIn%" %Tsec% ||GoTo :Begin2
	Set "SRnew=="
	For %%i In (%SIn%) Do Call Set "SRnew=%%SRnew%%%%i="

	3<"%FileIn%" (Set /p SInNew=<&3)
	Call :Found "%SInNew%" "%SRnew%" 0

	If     "%ErrorLevel%"=="0" Echo +++ В файлах "%FileIn%" "%FileOut%" одинаковые числа. Что дальше - не знаю :) &Pause &Exit /b 0
	If Not "%ErrorLevel%"=="0" Echo --- В файлах "%FileIn%" "%FileOut%" числа отличаются. Что дальше - не знаю :) &Pause &Exit /b 1
Я сделал таймаут (у меня 10 сек) для ожидания 1 файла, если его нет или если значения не содержатся в реестре.

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


Последний раз редактировалось megaloman, 12-02-2019 в 16:44.


Отправлено: 16:36, 12-02-2019 | #11