|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Нужна помощь в сравнении файлов и копировании |
|
|
CMD/BAT - Нужна помощь в сравнении файлов и копировании
|
Новый участник Сообщения: 9 |
Профиль | Отправить PM | Цитировать Доброго времени суток. Подскажите пожалуйста, как правильно написать BAT файл, который должен выполнять такую работу:
Проверить exe на локальном ПК и сравнить его с exe который находится на сервере (в локальной сети). Если файлы не идентичны (не важно что будет сравниваться, для примера, пусть сравнивает размер экзешников) - скопировать всю папку с сервера, на локальный комп с заменой файлов P.S. может есть такая тема, но не нашел её на форуме. Пожалуйста помогите |
|
Отправлено: 11:21, 07-06-2013 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать А если EXE на ПК и на сервере идентичны - то необходимо запустить exe с локальной машины
|
Отправлено: 11:33, 07-06-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Major_XXXX:
@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
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, а где он тут сравнивает файлы?
|
Отправлено: 11:54, 07-06-2013 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 11:58, 07-06-2013 | #5 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Can't find remote file [\\******\*****\**\**\***.exe]
Хотя файл там есть... что может быть? С этим разобрался, скобочки забыл поставить. Файлы оно сравнило, скопировало, но запуск exe с локального ПК не происходит... |
Отправлено: 12:03, 07-06-2013 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Major_XXXX:
Цитата Major_XXXX:
Цитата Major_XXXX:
Если думалось одно, а писалось другое, и требуется безусловный запуск приложения, то так: @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
|
Профиль | Отправить PM | Цитировать Попробую рассказать ещё раз) может действительно неправильно выразил свою мысль.
есть (к примеру) 5 компов. на них установлен софт. и на сервере установлен тот же софт, в отдельную папку. для того, чтобы не приходилось при обновлении софта инсталлировать на каждом ПК, необходим батник, который будет сверять версию exe файла на локальной машине, с той версией что установлена на сервере. если на сервере установлена (распакована) более свежая версия: по средствам батника (запуска у конечного пользователя) происходит следующее, копируются все файлы и папки с сервера на локальный комп, и запускается exe. если в результате сверки версий различий нету - ничего не копируется с сервера, и запускается всё тот же exe с локального компа |
Отправлено: 15:20, 07-06-2013 | #8 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать То есть, с локального компа, должна быть запущена актуальная (последняя) версия exe.
|
Отправлено: 15:47, 07-06-2013 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Major_XXXX, ну, и? Что не так?
|
Отправлено: 15:54, 07-06-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|