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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Нужна помощь в сравнении файлов и копировании

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

Новый участник


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

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


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

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

Отправлено: 11:21, 07-06-2013

 

Новый участник


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

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


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

Отправлено: 11:33, 07-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


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

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


Цитата Major_XXXX:
А если EXE на ПК и на сервере идентичны - то необходимо запустить exe с локальной машины »
Код: Выделить весь код
@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

Последний раз редактировалось Iska, 07-06-2013 в 11:59. Причина: Убрал первоначальный код, написанный до прочтения второго сообщения темы


Отправлено: 11:50, 07-06-2013 | #3


Новый участник


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

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


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

Отправлено: 11:54, 07-06-2013 | #4


Ветеран


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

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


Цитата Major_XXXX:
а где он тут сравнивает файлы? »
Цитата Iska:
Код: Выделить весь код
… fc.exe /b "%sLocalPath%\%sFileName%" "%sRemotePath%\%sFileName%" …
»

Отправлено: 11:58, 07-06-2013 | #5


Новый участник


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

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


Can't find remote file [\\******\*****\**\**\***.exe]
Хотя файл там есть... что может быть?

С этим разобрался, скобочки забыл поставить.
Файлы оно сравнило, скопировало, но запуск exe с локального ПК не происходит...

Отправлено: 12:03, 07-06-2013 | #6


Ветеран


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

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


Цитата Major_XXXX:
Can't find remote file [\\******\*****\**\**\***.exe]
Хотя файл там есть... что может быть?
С этим разобрался, скобочки забыл поставить. »
Какие скобки?

Цитата Major_XXXX:
Файлы оно сравнило, скопировало, но запуск exe с локального ПК не происходит... »
Так и не должен. Вы как сказали?
Цитата Major_XXXX:
если EXE на ПК и на сервере идентичны - то необходимо запустить exe »
Так и было сделано: если идентичны — происходит запуск. Всё в рамках ТЗ . Не более.

Если думалось одно, а писалось другое, и требуется безусловный запуск приложения, то так:
Код: Выделить весь код
@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

Последний раз редактировалось Iska, 07-06-2013 в 15:00. Причина: Поправил выделение, сделав акцент


Отправлено: 13:43, 07-06-2013 | #7


Новый участник


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

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


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

Отправлено: 15:20, 07-06-2013 | #8


Новый участник


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

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


То есть, с локального компа, должна быть запущена актуальная (последняя) версия exe.

Отправлено: 15:47, 07-06-2013 | #9


Ветеран


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

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


Major_XXXX, ну, и? Что не так?

Отправлено: 15:54, 07-06-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Нужна помощь в сравнении файлов и копировании

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужна помощь удаление файлов AlexsandrVl Скриптовые языки администрирования Windows 12 10-12-2011 21:17
VBS/WSH/JS - [решено] Нужна помощь в корекции скрипта для копирования файлов streamrider Скриптовые языки администрирования Windows 12 28-09-2011 02:14
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок Nun-Nun Скриптовые языки администрирования Windows 6 14-05-2009 15:45
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов 0bject Скриптовые языки администрирования Windows 614 19-01-2009 21:58
При копировании файлов падает сеть nnnn8 Сетевые технологии 1 09-12-2004 00:15




 
Переход