Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

cchameleone



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
» Описание Cmd.exe » Command shell overview
» Using batch files » Using batch parameters » Using filters » Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Попов А. Командная строка и сценарии Windows (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Я предлагаю решение. Вы ничего не предлагаете.

СТОП!
Pasha_ZZZ, а вот выше вы там ничего не читали?
я специально для вас повторю:

Цитата:
Falcon99, можно, но xcopy тут не при чем.
нужно пользоваться утилитой RoboCopy - она устанавливает двустороннюю связь и делает проверку в процессе копирования блоков файла. Проверка целостности делается на уровне протокола и если какой-то блок скопировался неправильно, то он запрашивается заново. В случае обрыва связи программа ждет, когда связь снова восстановится и продолжает копирование/синхронизацию.
По ссылке обратите внимание на раздел Retry options
При использовании этой утилиты нет необходимости в проверке CRC, потому что она делает синхронную копию, целостность которой проверяется в процессе копирования.
Я с её помощью синхронизирую поломанные DFS'ы - лучшего нативного инструмента не найти. XCopy - это как бы зародыш RoboCopy.
Осваивайте.  


Цитата:
Тут одно исключение - с линуксовыми НАСами не работает.
В таком случае нужно смотреть в сторону Rsync, но я бы не стал держать такую гетерогенную среду..

Это по вашему мнению "ничего"? Или вы просто этого не заметили, чему я не удивлюсь.
Чем вас не устраивает моё решение вопроса?

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 21:18 11-07-2017
Pasha_ZZZ



Запрет на пост
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MAGNet
Про "двустороннюю связь" и "проверку на уровне протокола" читал. Ржака, ага.

Всего записей: 12398 | Зарегистр. 11-03-2002 | Отправлено: 21:23 11-07-2017
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Pasha_ZZZ, придумай, как лучше объяснить, если ты понимаешь.
если не понимаешь, то я объяснил для таких как ты, чтоб поняли

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 21:34 11-07-2017
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAGNet

Цитата:
я говорю, что даже при использовании xcopy ошибка на уровне передачи данных исключена, потому что..

Допустим. Но позвольте... в коде Falcon99 я не увидел никакой проверки errorlevel.
После копирования нужно добавить нечто вроде:

Код:
if errorlevel 0 goto exit

На этой страничке можно подглядеть Exit codes

Цитата:
Falcon99, Sinclair83, Pasha_ZZZ, друзья мои, вы пытаетесь решить на самом верхнем уровне то, что давно уже решено за вас на нижних.

Falcon99 изъявил желание считать контрольные суммы. Отсюда такие советы.

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 08:19 12-07-2017 | Исправлено: Sinclair83, 08:33 12-07-2017
Falcon99



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо всем за интересный диалог.
Уважаемый MAGNet, не знал что Robocopy делает проверку в процессе копирования, но в скрипте использую именно ее, поэтому значит можно не беспокоиться, и оставить скрипт в том виде что есть.
 

Цитата:
товарищу Falcon99'у рекомендовал бы пересмотреть подход к бэкапам. делать всё из командного файла - это хардкорно и олдскульно - это бесспорно фэйловер, но мне кажется, что стоит поискать какие-то другие методы.  

 
До того как данный скрипт начали использовать, копирование вообще проводили вручную в понедельник уже в рабочее время, поэтому это уже хорошо, т.к. не загружается сеть и сервер в рабочее время.

Всего записей: 607 | Зарегистр. 12-10-2005 | Отправлено: 10:04 12-07-2017
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Falcon99

Цитата:
не знал что Robocopy делает проверку в процессе копирования, но в скрипте использую именно ее, поэтому значит можно не беспокоиться

Самоуспокоение. Я написал выше, что есть еще и кеширование, причем для приложений оно прозрачно. Никаких гарантий, что находящееся в кеше (то, что будет сравниваться с источником) и записанное на диск (то, что нас интересует) совпадет. И это не теоретические умозаключения - я не раз сталкивался с многогигабайтными файлами, не проходящими spam_detected в uTorrent'е после копирования.
Можно паковать бекапы в архивы, копировать архив по сети, затем тестировать его на целостность. Это даст гарантию, что ничего не побилось при копировании. Дополнительно - в офлайновом режиме, по расписанию - тестировать хранящиеся на носителе бекапов архивы на целостность. Это даст гарантию, что ничего не побилось при записи на диск.

----------
Magically yours
Raistlin

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 12:16 12-07-2017
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Можно паковать бекапы в архивы, копировать архив по сети, затем тестировать его на целостность.

это самый простой способ, потому как архив уже сам по себе содержит проверочную информацию и, кстати, какой-нибудь rar или 7z вполне себе надежно с этим работает.
если же не отклоняться от темы топика, то могу посоветовать поискать командный файл, который на основе rar делает разностные бэкапы, ежедневные, еженедельные и месячные.
версий подобных батников я встречал несколько, одной из них даже пользовался лет 7-8 назад после доработки напильником.
вполне возможно, что в этой ветке что-то такое есть и уже не раз обсуждалось. старожилы напомнят, я уверен.
стоит взять алгоритм и настроить его "под себя"

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 17:25 12-07-2017
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
если же не отклоняться от темы топика, то могу посоветовать поискать командный файл, который на основе rar делает разностные бэкапы, ежедневные, еженедельные и месячные.  

надо так понимать, что для этого rar должен знать структуру MS SQL-файла. И уметь находить различия между изменённым файлом и базовым архивом. ОЧЕНЬ маловероятно.

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 17:58 12-07-2017
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sinclair83, ему этого не надо. он проверяет это на уровне файловой системы. честно скажу, что не помню по какому принципу это работает, можете погуглить на тему "разностный бэкап" или "инкриментный бэкап". там есть разница, но в целом работает по одному принципу.
а ещё можно делать бэкапы силами самого скуля. у вас постгрес, если я не ошибаюсь?
вот вам две мои строчки. первая делает бэкап, вторая рестор:

Код:
runas /user:sr-1c8\postgres /savecred "C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_dump.exe -Fc -U postgres -f c:\backup\sklad4.sql sklad4"
runas /user:sr-1c8\postgres /savecred "C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\pg_restore.exe -U postgres --dbname sklad4 --clean --verbose c:\backup\sklad4.sql"

ну а дальше пакуем и отправляем на NAS.
не совсем вам подойдет и не впишется в схему разностных/инкрементных бэкапов, но есть плюс - не нужно останавливать скульный сервер и разворачивается такой бэкап на любом другом сервере без увлекательных танцев.
я считаю, что бэкапы нужно делать силами самой службы, а не простым копированием файлов. во втором случае бэкап может просто не восстановиться

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 18:20 12-07-2017
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите написать bat/vbs, чтобы убивал определенный процесс скажем раз в 3 часа.


----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3788 | Зарегистр. 15-10-2007 | Отправлено: 18:30 12-07-2017
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAGNet, да я вообще далёк от баз. Просто хотел помочь Falcon99, а потом самому стало интересно как это реализуется (услышать оптимальный вариант от тех, кто с этим работает). Авось когда пригодится.
 
Добавлено:
Wu Tang
а имя у процесса есть или может PID известен? У процесса имя уникальное? taskkill + sleep.exe - не? Ну или пингом можно также паузу получить.
 
Добавлено:
Пардон. PID при каждом запуске разный.
У процесса окно есть?

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 18:35 12-07-2017 | Исправлено: Sinclair83, 18:50 12-07-2017
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin

Цитата:
не проходящими spam_detected

Оригинальный тут детектор спама. Имелось в виду перехеширование.

----------
Magically yours
Raistlin

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 18:36 12-07-2017
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Wu Tang
например это будет убивать блокнот.

Код:
taskkill /im notepad.exe /f

зафигач эту команду в планировщик заданий и поставь расписание раз в два часа от имени системы
 
Добавлено:
да, к командным файлам это не имеет отношения.
просто нужно выбирать адекватные методы решения задач.
не нужно удалять зубы через заднепроходное отверстие

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 18:55 12-07-2017 | Исправлено: MAGNet, 18:57 12-07-2017
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sinclair83
MAGNet
процесс opera.exe
 
а не так
taskkill /f /im opera.exe?

----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3788 | Зарегистр. 15-10-2007 | Отправлено: 00:19 13-07-2017
MAGNet



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
а не так
taskkill /f /im opera.exe?

от перестановки местами слагаемых ключей результат не меняется.
я /f обычно всегда ставлю в конце, потому что изначально команда делается без него - это force, принудительное завершение процесса - добавляется, если обычное завершение не прокатывает.
без этого ключа процессам отправляется сигнал завершить работу, чтоб они там сами всё прибрали.
с этим ключом никто никому ничего не отправляет - процессы завершаются принудительно.

Всего записей: 2074 | Зарегистр. 31-03-2004 | Отправлено: 17:11 13-07-2017
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MAGNet
понял, задание получилось добавить, но только раз в час, раз 3 часа такого значения нет в планировщике.
ps ну и пусть принудительно.

----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3788 | Зарегистр. 15-10-2007 | Отправлено: 22:46 13-07-2017
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wu Tang, Подробнее...

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 23:02 13-07-2017
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
Подробнее...

----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3788 | Зарегистр. 15-10-2007 | Отправлено: 23:56 13-07-2017
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wu Tang

Код:
@echo off
set time=10800
set Process=opera.exe
:loop
tasklist|Find /i "%Process%" ||echo %Process% - not found&&goto elay
taskkill /f /im "%Process%"
elay
echo CMD wait %time% seconds for next check
ping 127.0.0.1 -n %time% >nul
Goto :loop

время в секундах.
 
Добавлено:
побился код. там где рожа должно быть "двоеточие" delay

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 09:52 14-07-2017 | Исправлено: Sinclair83, 09:56 14-07-2017
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wu Tang

Цитата:
раз 3 часа такого значения нет в планировщике.

Эти значения редактируемые...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 12:14 14-07-2017
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru