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

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

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

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Maz



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ 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. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 39045 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
shok

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто нибудь заморачивался сцеарием создания BCD файла с мультизагрузкой и с cохранением интерфейса Metro? Поделитесь пож.

Всего записей: 11870 | Зарегистр. 30-04-2006 | Отправлено: 12:00 28-12-2020
AnTul

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как удалять в папке 11-й файл? Делаю бэкап раром, достаточно десяти архивов, нужно, чтобы лишние (самые старые) удалялись.
 
Добавлено:
Спасибо Death_INN за наводку на http://forum.oszone.net/post-2178713.html Iska решил этот вопрос.

----------
Василий Великий: «Кто смотрит на зло без отвращения, тот скоро будет смотреть на него с удовольствием».

Всего записей: 5572 | Зарегистр. 13-07-2004 | Отправлено: 19:00 30-12-2020
mat86



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

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 02:48 02-01-2021 | Исправлено: mat86, 02:54 02-01-2021
notinthewoods



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Здесь вы помогли с извлечением одной переменной. Сейчас появилась похожая задача и я снова обращаюсь за помощью к вам.
Как на странице трансляции на сайте crazycash.tv можно извлечь этот код (e40c94d1-78df-4d29-b58c-fb59c25504ef) и вывести напр. в переменную:
SET code_stream=%%I

 
Добавлено.
Может пригодится такая инфа. Если стример выключает камеру, через некоторое время снова включает, то адрес страницы меняется. Например, на скрине:
crazycash.tv/view-stream/89429
В данный момент:
crazycash.tv/view-stream/89549
Разумеется, код стрима тоже меняется.
Это не относится, когда трансляция просто ставится на паузу.
Новую страницу трансляции можно найти по нику в поиске на главной странице сайта.
В этом случае ник - Wiokaese
******
Добавлено2.
Еще вдруг окажется полезным следующее. На главной странице crazycash.tv в окнах превью примерно каждые 30 сек меняется картинка. Если взять любую трансляцию и правой кнопкой по картинке - Исследовать элемент, то можно получить напр. такие ссылки:
httрs://wegde1.crazycash.tv/stream/6ecca0d2-eb63-4c1e-b38d-30d1738e8880/thumbnail.jpg?v=54urw4a
httрs://wegde1.crazycash.tv/stream/6ecca0d2-eb63-4c1e-b38d-30d1738e8880/thumbnail.jpg?v=nrvppzv
httрs://wegde1.crazycash.tv/stream/6ecca0d2-eb63-4c1e-b38d-30d1738e8880/thumbnail.jpg?v=eptvzb7
Ссылки живут недолго. Главное то, что здесь код 6ecca0d2-eb63-4c1e-b38d-30d1738e8880 не меняется, пока камера включена.
Вот собственно интересует, как средствами командной строки можно извлечь этот код и вывести в переменную.

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 02:16 07-01-2021 | Исправлено: notinthewoods, 06:33 08-01-2021
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, поведайте как правильно организовать рассылку на 2000 адресов с таймингом 30 сек.? Я так понимаю это надо делать через скрипт.

Всего записей: 4827 | Зарегистр. 02-10-2004 | Отправлено: 15:22 07-01-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diabolik
Смотря какой программой будете рассылать.  
Как вариант - Advanced Mass Sender
Или Blat http://forum.ru-board.com/topic.cgi?forum=5&topic=10837&glp#lt
 
Добавлено:
https://stackoverflow.com/questions/9038926/how-to-send-a-simple-email-from-a-windows-batch-file

Всего записей: 688 | Зарегистр. 12-09-2017 | Отправлено: 09:43 11-01-2021 | Исправлено: Fenrizz, 10:50 11-01-2021
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Оу, я забыл упомянуть! Программа The Bat!. У нее вроде есть даже встроенный интерпретатор для этих целей.

Всего записей: 4827 | Зарегистр. 02-10-2004 | Отправлено: 10:35 11-01-2021 | Исправлено: Diabolik, 10:35 11-01-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diabolik
У TheBat! есть Command Line Interface https://www.ritlabs.com/en/products/thebat/command-line.php
Тогда опишите задачу поподробнее: откуда будут браться адреса для рассылки и всё остальное?  
 
Если считать, что список получателей находится в файле emails.txt то примерно так:  

Цитата:
 
FOR /F "tokens=*" %%G IN ("emails.txt") DO (
thebat64.exe /MAILTO=%%G;SUBJECT=Test;TEXT=c:\test\test1.txt
TIMEOUT /T 30)  

 

Всего записей: 688 | Зарегистр. 12-09-2017 | Отправлено: 11:01 11-01-2021 | Исправлено: Fenrizz, 11:01 11-01-2021
Diabolik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Нужно брать адреса из адресной книги ящика (можно из внешнего файла, формата который сможет распознать типа TXT и/или XLSX). По этим адресам отправлять письма с разницей в 30 секунд (ограничения SMTP-сервера). Так же очень бы хотелось чтобы отрабатывалась отбивочка по не рабочим адресам. То есть если после отправки приходит ответ, что ящик не существует или по каким-то другим причинам не может принять письмо, то данный адрес удаляется (других пометок там вроде нет) из адресной книги. Я еще 2007 делал это как-то чуть ли не штатным инструментами рассылки самого The Bat!, только вообще уже ничего не помню.

Всего записей: 4827 | Зарегистр. 02-10-2004 | Отправлено: 13:41 16-01-2021 | Исправлено: Diabolik, 13:44 16-01-2021
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне нужна утилита типа Choice.exe, и желательно, чтобы её код можно было хранить в батнике.
 
С нынешним Choice.exe проблема в том, что не обрабатывает клавиши ENTER, Home, Page Up/Down, Backspace, пробел, стрелки, F# и тем более Ctrl, Shift, Alt. Как альтернативу ему всегда использовал файл Ask.com (всего 14 байт), который тоже опрашивает клавиатуру, но он не запускается в 64-разрядных Windows, и почему-то, на файловых системах exFAT.
 
Помню, кто-то из здешних делал подобные для батников, код которых можно было вписать в "Echo >" и записать в файл.

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 10:04 21-01-2021 | Исправлено: A27, 10:05 21-01-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27
http://forum.ru-board.com/topic.cgi?forum=5&topic=50615&start=241&limit=1&m=1#1
 
А чем не устраивает вариант?

Цитата:
set /p aaa=Enter something:  
if "%aaa%"=="12345" do something  

Всего записей: 688 | Зарегистр. 12-09-2017 | Отправлено: 15:29 21-01-2021 | Исправлено: Fenrizz, 07:57 22-01-2021
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz, тем, что после ввода каждой буквы придётся тыкать Enter. И нажатие стрелок он не обрабатывает.
 
И нужен такой .com, чтобы можно было обойтись без certutil.

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 10:34 22-01-2021
Fenrizz



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

Цитата:
Fenrizz, тем, что после ввода каждой буквы придётся тыкать Enter. И нажатие стрелок он не обрабатывает.  

Не придётся.
Обрабатывает

Всего записей: 688 | Зарегистр. 12-09-2017 | Отправлено: 14:29 22-01-2021 | Исправлено: Fenrizz, 14:29 22-01-2021
notinthewoods



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

Цитата:
set /p url=url:
set proxy=... #ip:port
for /f "delims=" %%a in ('streamlink.exe --http-proxy %proxy% --https-proxy %proxy% --stream-url %url%') do @set playlist=%%a

streamlink.exe - команда, которая при помощи ключей --http-proxy и --https-proxy ищет на некотором сайте ссылку на плейлист с помощью параметра --stream-url и выводит переменную playlist.
С одним значением proxy батник работает нормально.
Задача - использовать файл proxy.txt - список нескольких прокси по одному в каждой строке.
Как задать перебор прокси из этого файла для streamlink.exe ? Типа:

Цитата:
for /f "delims=" %%a in (proxy.txt) do ...

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 04:35 23-01-2021
A27

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

Цитата:
Не придётся.
Обрабатывает  

Раз уж сегодня не первое апреля, я всёж проверил: скопировал пример в батник, запустил и... как я и говорил "после каждой буквы ENTER и не обрабатывает стрелки".
 

Цитата:
streamlink.exe

Что за файл такой интересный? Чем он лучше wget? Дайте пощупать.
 
Так:

Код:
set /p url=url:
for /f %%a in (proxy.txt) do for /f %%a in ('streamlink.exe --http-proxy %%a --https-proxy %%a --stream-url %url%') do @set playlist=%%a

Собственно, как вы и указали...

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 05:00 23-01-2021 | Исправлено: A27, 05:15 23-01-2021
notinthewoods



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

Цитата:
set /p url=url:
for /f %%a in (proxy.txt) do for /f %%a in ('streamlink.exe --http-proxy %%a --https-proxy %%a --stream-url %url%') do @set playlist=%%a  

Чего-то не хватает... Выдает ошибку, смысл - нет плейлиста на выходе. Про ошибки с прокси нет сообщений, т.е. ошибка, как кажется, все-таки в синтаксисе.
Что касается стримлинка, то это консольная программа записи потоков HLS, DASH и т.п.
Дальше в батнике идет команда записи типа:

Цитата:
streamlink.exe %playlist% best -o file.ts

Вот здесь на вход должен подаваться %playlist% - его то и нет...

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 06:33 23-01-2021
eddiezato



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

Цитата:
set /p url=url:
for /f %%a in (proxy.txt) do for /f %%a in ('streamlink.exe --http-proxy %%a --https-proxy %%a --stream-url %url%') do @set playlist=%%a

Цикла два, а переменная одна.

Всего записей: 1690 | Зарегистр. 26-02-2011 | Отправлено: 06:45 23-01-2021
A27

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

Цитата:
Чего-то не хватает... Выдает ошибку, смысл - нет плейлиста на выходе. Про ошибки с прокси нет сообщений, т.е. ошибка, как кажется, все-таки в синтаксисе.

 
В синтаксисе нет ошибки. Как вы задачу поставили, так и было сформировано решение. Я думаю, причина в формате содержимого файла proxy.txt, либо в его кодировке.
 
 

Цитата:
Цикла два, а переменная одна

Здесь нет ошибки. Одноимённая переменная вложенного цикла при его выполнении перекрывает переменную внешнего цикла. Как пример:
 

Код:
@Echo Off
for /f "Delims=." %%a in (proxy.txt) do for /f %%a in ("%%a") do echo [%%a]
pause

 
Содержимое proxy.txt:
 

Код:
aaaaaaa bbbbbbbbb cccccc
dddddddddd eeeeeeeeee fffffff
ggggggggg hhhhhhh iiiiii
jjjjjjj kkkkkkkk lllllllll

 
Результатом выполнения будут первые слова всех строк, не строки полностью.

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 07:43 23-01-2021 | Исправлено: A27, 07:51 23-01-2021
metatrop

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

Цитата:
 
И нужен такой .com, чтобы можно было обойтись без certutil.
 

 
.com файлы, про которые говорите - это ведь DOS приложения, причём даже без стандартного MZ заголовка. Ни один из них не работает из-под 64-битной ОС, только из 32-битных. Невозможность их запуска - один из ряда минусов x64 ОС в сравнении с x32+PAE ОС.
 
Отсутствие цифровой подписи - это пока, к счастию, ещё не проблема для приложений на x64 системах (в отличие от драйверов), однако исполняемые файлы для Windows со всеми заголовками и таблицами импорта не могут быть настолько же маленькими, как и .com файлы DOS. Записывать их из .bat файла - не слишком хорошая идея.
 
Тут уж проще самому откомпилировать простейшую программку, если choice совсем никак не устраивает. Если нужен ввод строго клавиши Enter, то сойдёт

Код:
 
set /p ="Press Enter... "
 


Всего записей: 326 | Зарегистр. 17-09-2010 | Отправлено: 16:23 23-01-2021
notinthewoods



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

Цитата:
В синтаксисе нет ошибки. Как вы задачу поставили, так и было сформировано решение.

Да, моя вина. Я неточно сформулировал задачу.

Цитата:
Как задать перебор прокси из этого файла для streamlink.exe

Выяснилось следующее. Когда я в файле proxy.txt оставил только одну строку с наиболее надежным прокси, то всё сработало на ура. Но когда в списке стало несколько строк, получилось следующее. Начался долгий и нудный процесс перебора ВСЕХ строк. И хотя нужный плейлист был найден уже на первых порах, он не подавался дальше по конвейеру.
Т.е. задача состоит в том, чтобы, как только плейлист был бы найден, процесс перебора остальных прокси должен завершиться и найденный плейлист отправился дальше по назначению.
Думаю, теперь понятно объяснил, что должно быть. Вот как бы это правильно задать в батнике?

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 19:08 23-01-2021
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru