CMD/BAT - Нужна помощь в сравнении файлов и копировании

Аватара пользователя
Major_XXXX

CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Доброго времени суток. Подскажите пожалуйста, как правильно написать BAT файл, который должен выполнять такую работу:

Проверить exe на локальном ПК и сравнить его с exe который находится на сервере (в локальной сети). Если файлы не идентичны (не важно что будет сравниваться, для примера, пусть сравнивает размер экзешников) - скопировать всю папку с сервера, на локальный комп с заменой файлов


P.S. может есть такая тема, но не нашел её на форуме. Пожалуйста помогите
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

А если EXE на ПК и на сервере идентичны - то необходимо запустить exe с локальной машины
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Цитата Major_XXXX:



А если EXE на ПК и на сервере идентичны - то необходимо запустить exe с локальной машины
CMD/BAT - Нужна помощь в сравнении файлов и копировании






Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sFileName=procexp.exe
set sLocalPath=%ProgramFiles%\Sysinternals.com\Sysinternals Suite
set sRemotePath=\\live.sysinternals.com\tools
if exist "%sLocalPath%\%sFileName%" (
	if exist "%sRemotePath%\%sFileName%" (
		1>nul 2>&1 fc.exe /b "%sLocalPath%\%sFileName%" "%sRemotePath%\%sFileName%" && (
			"%sLocalPath%\%sFileName%"
		) || (
			xcopy.exe /e /f /h /r /k /y /z "%sRemotePath%\*.*" "%sLocalPath%\*.*"
		)
	) else (
		echo Can't find remote file [%sRemotePath%\%sFileName%].
	)
) else (
	echo Can't find local file [%sLocalPath%\%sFileName%].
)
endlocal
exit /b 0
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Подскажите пожалуйста, а где он тут сравнивает файлы?
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Can't find remote file [\\******\*****\**\**\***.exe]

Хотя файл там есть... что может быть?



С этим разобрался, скобочки забыл поставить.

Файлы оно сравнило, скопировало, но запуск exe с локального ПК не происходит...
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Цитата Major_XXXX:



Can't find remote file [\\******\*****\**\**\***.exe]

Хотя файл там есть... что может быть?

С этим разобрался, скобочки забыл поставить.
CMD/BAT - Нужна помощь в сравнении файлов и копировании




Какие скобки?




Цитата Major_XXXX:



Файлы оно сравнило, скопировало, но запуск exe с локального ПК не происходит...
CMD/BAT - Нужна помощь в сравнении файлов и копировании




Так и не должен. Вы как сказали?


Цитата Major_XXXX:



если EXE на ПК и на сервере идентичны - то необходимо запустить exe
CMD/BAT - Нужна помощь в сравнении файлов и копировании




Так и было сделано: если идентичны — происходит запуск. Всё в рамках ТЗ . Не более.



Если думалось одно, а писалось другое, и требуется безусловный
запуск приложения, то так:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sFileName=procexp.exe
set sLocalPath=%ProgramFiles%\Sysinternals.com\Sysinternals Suite
set sRemotePath=\\live.sysinternals.com\tools
if exist "%sLocalPath%\%sFileName%" (
	if exist "%sRemotePath%\%sFileName%" (
		1>nul 2>&1 fc.exe /b "%sLocalPath%\%sFileName%" "%sRemotePath%\%sFileName%" || (
			xcopy.exe /e /f /h /r /k /y /z "%sRemotePath%\*.*" "%sLocalPath%\*.*"
		)
	) else (
		echo Can't find remote file [%sRemotePath%\%sFileName%].
	)
	"%sLocalPath%\%sFileName%"
) else (
	echo Can't find local file [%sLocalPath%\%sFileName%].
)
endlocal
exit /b 0
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Попробую рассказать ещё раз) может действительно неправильно выразил свою мысль.

есть (к примеру) 5 компов. на них установлен софт. и на сервере установлен тот же софт, в отдельную папку.

для того, чтобы не приходилось при обновлении софта инсталлировать на каждом ПК, необходим батник, который будет сверять версию exe файла на локальной машине, с той версией что установлена на сервере.

если на сервере установлена (распакована) более свежая версия:

по средствам батника (запуска у конечного пользователя) происходит следующее, копируются все файлы и папки с сервера на локальный комп, и запускается exe. если в результате сверки версий различий нету - ничего не копируется с сервера, и запускается всё тот же exe с локального компа
Аватара пользователя
Major_XXXX

Re: CMD/BAT - Нужна помощь в сравнении файлов и копировании

Сообщение Major_XXXX »

Попробую рассказать ещё раз) может действительно неправильно выразил свою мысль.

есть (к примеру) 5 компов. на них установлен софт. и на сервере установлен тот же софт, в отдельную папку.

для того, чтобы не приходилось при обновлении софта инсталлировать на каждом ПК, необходим батник, который будет сверять версию exe файла на локальной машине, с той версией что установлена на сервере.

если на сервере установлена (распакована) более свежая версия:

по средствам батника (запуска у конечного пользователя) происходит следующее, копируются все файлы и папки с сервера на локальный комп, и запускается exe. если в результате сверки версий различий нету - ничего не копируется с сервера, и запускается всё тот же exe с локального компа
Ответить

Вернуться в «Скриптовые языки администрирования Windows»