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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

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)

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

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

Цитата:
русские, длинные и с пробелами пути не учтены ...

Всё учтено и работает, это я условно написал, плюс кодировка 866.

Цитата:
добавить "\" в конце имени результата

Не пробовал, но копирует и так без проблем в нужную папку.

Всего записей: 363 | Зарегистр. 26-10-2005 | Отправлено: 12:53 27-07-2020 | Исправлено: cl85, 12:55 27-07-2020
GCRaistlin



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

Цитата:
копирует и так без проблем в нужную папку

Если она существует.

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

Всего записей: 2736 | Зарегистр. 18-04-2005 | Отправлено: 13:00 27-07-2020
cl85

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

Цитата:
Если она существует

Существует, она создаётся другой программой.

Всего записей: 363 | Зарегистр. 26-10-2005 | Отправлено: 13:02 27-07-2020
GCRaistlin



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

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

Всего записей: 2736 | Зарегистр. 18-04-2005 | Отправлено: 13:08 27-07-2020
Fenrizz

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Прошу прощения за оффтопик https://habr.com/ru/post/301924/

Всего записей: 112 | Зарегистр. 12-09-2017 | Отправлено: 14:35 27-07-2020
cl85

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

Цитата:
Вы не понимаете принципа.

Не спорю.
Спасибо, учту.

Всего записей: 363 | Зарегистр. 26-10-2005 | Отправлено: 15:58 27-07-2020
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написал маленький cmd для перемещения файлов.
 
Задача:
Есть папка, в ней вложенные папки. Располагаться папки может быть где угодно.  
В вложенных папках есть разные файлы, в том числе с расширением .cr2
Нужно переместить из папки только файлы с расширением .cr2 в папку C:/1 с сохранением структуры подпапок. Остальные данные - папки и файлы - в исходной папке должны остаться неизменными.  
 
Решение в виде cmd:

Код:
xcopy *.cr2 C:\1\ /H /Y /C /R /S
del /f /s /q *.cr2 > nul

 
Подскажите, пожалуйста, правильно ли я усё сделал ?
Опасаюсь правильно ли я использовал команду del
Не удалит ли она у меня чего лишнего ?
Ведь расположение папки относительное

Всего записей: 2043 | Зарегистр. 11-12-2002 | Отправлено: 21:55 27-07-2020 | Исправлено: kot1313, 22:13 27-07-2020
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, всем!
 
На 193-й стр. Mr_SMiT оставлял запрос на поиск последовательности байт в бинарном файле + чтение определённого числа байт от найденного. Запрос оставлен 08-07-2020, а 13-07-2020 уже сделал требуемое, но ожидал повторного появления Mr_SMiT в теме. Ему конечно уже подсказали использовать сторонние инструменты и возможно ему это уже не нужно, но всё же хочу поделиться с общественностью. Может кому пригодится.
Можно передать всего три параметра. Два из них являются обязательными и нуждаются в двойных кавычках (третий же идёт как опция).
 
1й - "полный путь до файла-цели"
 
2й - "сигнатура/паттерн/шаблон" для поиска (допускается использование ??)
 
3й - кол-во байт, которые нужно прочитать после заданного шаблона поиска (если не указывать, то результатом будет только офсет/смещение). Если между найденными паттернами будет меньше байт, чем задано (то есть "внахлёст") или же офсет последнего найденного паттерна + кол-во байт заданного в третьем параметре будет больше размера файла, то лишнее обрежется/прочитается столько байт сколько есть.
 
Да, немного отошёл от задания (в смысле не стал повторять каждый раз искомый паттерн в выводимом результате как это было указано в условии задачи).
 
Надеюсь, что удалось донести общий смысл + извините за стороннее приложение в теме по батникам.
 
 
Вобщем, удачи!
 
 
Ссылка
 
Добавлено:
 
older, нет. Это просто набросок под одну конкретную задачу. Да и настроек-то никаких нет. Только указать объект + что ищем + сколько байт нужно вычитать. Вот и всё.

Всего записей: 730 | Зарегистр. 07-01-2009 | Отправлено: 19:14 28-07-2020 | Исправлено: Sinclair83, 20:48 28-07-2020
older

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

Всего записей: 299 | Зарегистр. 15-02-2003 | Отправлено: 19:28 28-07-2020
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
older
ответил в пред. сообщении.
 
Пишу это/новое потому что забыл вчера добавить важное замечание: ВНИМАНИЕ! файл читается в память целиком, поэтому будьте осторожны. Это на случай, если надумаете образ игрушки какой-нибудь посмотреть, вес которого будет исчисляться сотнями Мегабайт. Также не обрабатывается условие, когда паттерн состоит из одних только "??". Думаю в трезвом уме никто так делать не будет. Знакми вопроса можно заменить один или несколько байт, которые неизвестны.
 
Программу можно использовать для поиска определённой цепочки байтов (ватермарка, например). Разумеется искать можно в любых файлах. Паттерн должен состоять из шестнадцатиричных чисел/hex (результат будет представлен так же).

Всего записей: 730 | Зарегистр. 07-01-2009 | Отправлено: 10:33 29-07-2020
usalex

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

Код:
 
@echo off
set "d=C:\core"
set "f=spisok.txt"
 
for /f "usebackq delims=" %%a in ("%f%") do dir /b/s "%d%"|>nul find "%%a"&& >nul 2>&1 del /q "%%a"& >nul 2>&1 rd /s /q "%%a"
pause
 

но она не работает.

Всего записей: 4671 | Зарегистр. 20-12-2004 | Отправлено: 20:24 01-08-2020 | Исправлено: usalex, 20:28 01-08-2020
insorg



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

Цитата:
set "d=C:\core"
set "f=spisok.txt"  

Кавычки не выглядят здесь нужными....

Всего записей: 1080 | Зарегистр. 04-11-2010 | Отправлено: 20:34 01-08-2020 | Исправлено: insorg, 20:34 01-08-2020
usalex

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
Без кавычек тоже не работает.
 
Работает вот такая конструкция:

Код:
 
@echo off
set "d=Z:\core"
set "f=Z:\list.txt"
 
for /f "delims=" %%a in ('dir /a-d/b "%d%"^|findstr /g:"%f%"') do del "%d%\%%a"
pause
 

Но она не удаляет папки, внесенные в список, а удаляет только файлы.

Всего записей: 4671 | Зарегистр. 20-12-2004 | Отправлено: 20:41 01-08-2020
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время
usalex
Непонятно.  
del /q "%%a" удалит файл с именем строки из spisok.txt. Но где? Если из текущей папки - то зачем /s у dir?
Я бы зашел с другой стороны

Цитата:
@echo off  
set "d=D:\core"  
set "f=spisok.txt"  
   
for /f "delims=" %%a in ('dir /a /b /s "%d%\*" ^| findstr /e /g:"%f%"') do if exist "%%~a\" (rd /s /q "%%a" > nul 2>&1) else (del /q "%%a" > nul 2>&1)
pause

insorg
Кому как, кому как...
 
PS. Прошу прощения за множественные правки... Тормознул...

Всего записей: 1789 | Зарегистр. 07-08-2002 | Отправлено: 20:52 01-08-2020 | Исправлено: Alex_Piggy, 20:57 01-08-2020
usalex

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Круть! Спасибо, работает.
А нельзя ли улучшить эту конструкцию, чтоб она распознавала в списке строки вида: core\browser\features\formautofill@mozilla.org.xpi и core\browser\VisualElements  ?

Упс... похоже, я лишнего прошу Ваша конструкция прекрасно ищет и удаляет папки и файлы находящиеся внутри папок, вложенных в целевую.
СПАСИБО!

Всего записей: 4671 | Зарегистр. 20-12-2004 | Отправлено: 21:16 01-08-2020 | Исправлено: usalex, 21:49 01-08-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru