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

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

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

articlebot (21-06-2016 11:40): Следующая часть - Командная строка, батники, сценарии (bat, cmd)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452

   

Widok



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 12
 
Полезные ссылки
· Из 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. Справочник администратора
 
· Скрываем консольные окна
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.zip - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
 
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 16:29 03-03-2010 | Исправлено: regist123, 13:32 02-11-2015
lorents



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

Цитата:
 от ленивых можно батник в компилятор загнать - вдруг не найдут код  

для ленивых сойдет, им и код не нужен. думаю, как же все-таки защитить от не ленивых.

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 17:11 31-10-2010
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents
Компиляция плюс RAM диск в который будет прописано развёртывание.
Я кстати этот вариант в ближайшее время планирую попробовать.  
 
Добавлено:
Кстати. А никто не заморачивался на тему как заставить развёртываемый батник работать только в оперативке?

Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 12:27 01-11-2010
wolf0425



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

Цитата:
Компиляция плюс RAM диск в который будет прописано развёртывание.  

годится только для батников с околонулевым временем выполнения - т.е. например без никакого интерфейса, без вызова сколько-то длительно выполняющихся команд, и т.п. Смысла защищать такой батник обычно немного.
Да и то без гарантии, что особо настойчивый юзер не сумеет заблокировать удаление временного файла и в таком идеальном случае, или не подменит cmd.exe. Т.е. защита от ламеров и ленивых.

Цитата:
как заставить развёртываемый батник работать только в оперативке?
cmd.exe такого не умеет, так что в момент запуска батника - его код доступен как файл и расшифрован.

Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:30 01-11-2010 | Исправлено: wolf0425, 14:47 01-11-2010
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wolf0425

Цитата:
годится только для батников с околонулевым временем выполнения
по идее не обязательно. RAM диск можно шифровать.  
Тогда бабалайку хитрому юзверю, а не доступ кнему.
(это пока теория правда. я ещё это не пытался реализовывать. пока только идеи на уровне "нужно, порой очень нужно, но недосуг пока")

Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 14:46 01-11-2010
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста,Ю как можно переименовать файлик сохранив имя и лишь добавить префикс:

Цитата:
 
rename DB_backup_YYYYMMDDHHMM.bak DB_backup_YYYYMMDDHHMM_full.bak
 

 
спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 14:54 01-11-2010 | Исправлено: slech, 14:54 01-11-2010
wolf0425



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

Цитата:
RAM диск можно шифровать.  
это как же придется зашифровать диск, чтоб один процесс видел на нем расшифрованный код батника, а все остальные процессы ОС - нет?
ну, конечно, написав свой клон Sandboxie - проблему решить наверно можно, только вот что-то мне говорит, что там потребуются админские права - которых левой программе большинство юзеров просто не даст.  
 
Добавлено:
slech

Код:
call :rename "DB_backup_YYYYMMDDHHMM.bak"
exit
:rename  
ren "%~1" "%~n1_full%~x1"
goto :eof

Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:56 01-11-2010 | Исправлено: wolf0425, 15:02 01-11-2010
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wolf0425
Цитата:
это как же придется ...
пока незнаю. Я же говорю что пока это только мысли.
В мыслях это как создание шифрованного РАМ - распаковка туда батника.  
После этого батник читается из РАМа.  
Поскольку этот процесс непрерывен, то и доступ к батнику осуществляется только один раз по запуску. Т.е. логинится в РАМ нужно один раз в самом начале.  
Для этого "своих клон Sandboxie" не нужно.  
Нужно придумать как запихнуть тудой батник с первичной авторизацией.  
 
 
 
Добавлено:
wolf0425
Цитата:
ren "%~1" "%~n1_full%~x1"
goto :eof  
гм. чисто ламерский вопрос в целях, "может я чего то не понимаю".
Почему у тебя тут goto :eof стоит (кстати пробел то тут - ошибка).
Это же "переход в конец файла и выход". Почему не просто exit к примеру или вообще ничего?

Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 15:14 01-11-2010 | Исправлено: gryu, 15:25 01-11-2010
res2001



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

Цитата:
В мыслях это как создание шифрованного РАМ  

Ну а чем создавать этот РАМ-диск? Я юзал в свое время софтину, дык она после установки перезагрузки просила. А тебе надо сделать РАМ-диск, выполнить нужные действия, удалить РАМ-диск. И все это чтоб было тихо мирно и юзер ни о чем не догадался. Даже если получится без перезагрузки, то как отключить сообщения винды о том, что найдено новое устройство (РАМ-диск)?
Ну и wolf0425 на счет прав правильно сказал. Нужно батник запускать или под другим юзером, или юзер все равно его сможет увидеть, даже на зашифрованном РАМ-диске.
По моему, в этом случае надо уже писать прогу и компилить ее. На VB это будет не трудно сделать. Пусть себе exeшники читают, кому не лень.

Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:38 01-11-2010
me22you

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Необходимо делать резервную копию сетевой папки. Написал Батник:
 
@echo off
c:\progra~1\winrar\rar.exe a -agDD-MM-YY d:\backup\exp\base_ \\192.168.1.111\exp\Базы
 
 
Он не выполняется, при чем очень интересно то что если строчки из него вставить в командную строку он делает действия. а если батник запускать то он появляется на сек и пропадает

Всего записей: 1 | Зарегистр. 10-01-2010 | Отправлено: 15:58 01-11-2010
wolf0425



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

Цитата:
Поскольку этот процесс непрерывен, то и доступ к батнику осуществляется только один раз по запуску.
не по запуску, а один раз на каждую строку батника - cmd подчитывает код по мере обработки
и пока cmd  исполняет команду из первой строки батника  - без "аналога Sandboxie" все остальные программы, запущенные от того же пользователя, могут всё содержимое батника прочитать и скопировать  -у них ровно те же права доступа, что и у cmd.exe.
так что или писать тулзу для подмены файла на лету в зависимости от имени родительского процесса (типа Sandboxie), либо писать свой коммандный интерпретатор, работающий с зашифрованным командником (взяв за основу исходники cmd.exe).
 
res2001
Цитата:
По моему, в этом случае надо уже писать прогу и компилить ее.
именно. получится заметно проще извращений с шифровкой. но и это вариант не для lorents

Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:05 01-11-2010 | Исправлено: wolf0425, 16:10 01-11-2010
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wolf0425, спасибо всё сработало.
 
возник другой вопрос, я вот пишу батник который будет заниматься копированием файлов с сетевых папок при помощи robocopy.
мне хотелось бы получать уведомление почтой при возникновении ошибки, для этого я буду использовать blat.
у меня вопрос организации батника, я это вижу пока так:
Цитата:
 
::
:copyDB1
set source=
set destination=
robocopy %source% %destination% /Z *.full.bak
if not errorlevel 1 goto :copyerror else goto :copyDB2
::
:copyDB2
set source=
set destination=
robocopy %source% %destination% /Z *.full.bak
if not errorlevel 1 goto :copyerror else goto :copyDB3
::
:copyDB3
set source=
set destination=
robocopy %source% %destination% /Z *.full.bak
if not errorlevel 1 goto :copyerror else goto :archiving
::
::
:copyerror
set backupdate=%date% -%time%
set maildir=D:\BackUp\#\mail
set mailserver=192.168.0.1
set mailto=admin@domain.com
set mailfrom=%COMPUTERNAME%@domain.com
set mailsubject="%COMPUTERNAME% - Filed to copy DB from %source% - %backupdate%"
set mailbody="%COMPUTERNAME% - Filed to copy DB from %source% - %backupdate%"
::
:archiving
7z a .....
::
 

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

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 16:14 01-11-2010 | Исправлено: slech, 16:25 01-11-2010
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wolf0425

Цитата:
а один раз на каждую строку батника - cmd подчитывает код по мере обработки
Но доступ то един. CMD уже один раз сделав логон не выходит более из батника. Следовательно логон не будет более спрашивать пароль, а будет пропускать автоматом.  
В остальном спорить не буду. Может вы и правы. ... а может и нет

Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 16:14 01-11-2010
res2001



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
me22you
добавь в конце батника  
pause
запускай и смотри какая ошибка.
Может проблема с правами на удаленном компе?

Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:38 01-11-2010
wolf0425



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slechоформи отсылку сообщения как подпрограмму и вызывай её после каждого робокопи
как-то так:

Код:
:copyDB2
set source=
set destination=
robocopy %source% %destination% /Z *.full.bak
if errorlevel 1 call :copyerror copyDB2
:copyDB3
...
exit
 
:copyerror
echo Error message from %1  
set backupdate=%date% -%time%
...
blat ...
exit /b

 
gryu

Цитата:
Но доступ то един. CMD уже один раз сделав логон не выходит более из батника.
cmd переоткрывает файл заново после выполнения каждой "строки" (что является для него строкой - вопрос отдельный, например for или ()  - это одна строка).
проверяется же тривиально - неужели никогда не пробовал во время исполнения батника править его код?
 

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

Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:53 01-11-2010 | Исправлено: wolf0425, 17:49 01-11-2010
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gryu
Если будут новости, напиши пожалуйста мне в личку.

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 16:56 01-11-2010
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня почему то команда taskkill выдает - указанная служба не может быть запущена, поскольку отключена, а что за служба не пойму...

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

Всего записей: 3773 | Зарегистр. 15-10-2007 | Отправлено: 19:28 01-11-2010
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wu Tang
Taskkill uses WMI API to search process by name. Enable Windows Management Instrumentation (winmgmt) to use /IM
 
Добавлено:
хотя у меня не воспроизвелось
вот мой список

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 19:48 01-11-2010 | Исправлено: slech, 19:57 01-11-2010
Misha1989



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents
Цитата:
Подскажите, как можно защитить bat-файл от просмотра скрипта?

Ни один из платных продуктов это не умеет. В любом случае можно вытащить исходный код батника. И зашифрованный RAM-диск этому не поможет, это утопическая идея, даже при нулевом времени исполнения можно тормознуть процесс в нужном месте и вытащить батник - это дело техники.
 
Чтобы надёжно защитить батник - нужно написать специальную виртуальную машину с интерпретатором команд, чтобы она могла выполнять криптованый код батника, делать переходы GOTO и CALL, чтобы не передавала ничего стандартному CMD.EXE, всё расшифровывала и выполняла сама внутри себя. Ещё надо чтобы при каждой компиляции команды генерировались случайным образом.
Но такое вряд ли кто напишет для батников, для EXE-файлов есть такие защиты, и начинающие хакеры бессильны против таких защит (Themida, ExeCryptor, Armadillo).

Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 20:00 01-11-2010
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
Что-то нет понял как восстановить.
У меня эти службы пашут:

 
 
Добавлено:
Ха, дело было в службе - Инструментарий управления Windows

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

Всего записей: 3773 | Зарегистр. 15-10-2007 | Отправлено: 21:59 01-11-2010
miax

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите з батником!
Есть процес 111.exe он запускаєт просец 222.exe(запуск вшыт внутри екзешника 111), а сам завершаетса. Нужно что б по закритии процесса 222.exe Windows Выключался.

Всего записей: 2 | Зарегистр. 02-11-2010 | Отправлено: 00:44 02-11-2010
   

Страницы: 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 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452

Компьютерный форум Ru.Board » Компьютеры » Программы » Активные темы » Командная строка, батники, сценарии (bat, cmd)
articlebot (21-06-2016 11:40): Следующая часть - Командная строка, батники, сценарии (bat, cmd)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru