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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 37447 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
shok

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

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

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

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

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



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

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

Junior 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 не меняется, пока камера включена.
Вот собственно интересует, как средствами командной строки можно извлечь этот код и вывести в переменную.

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



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

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



Full 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

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



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

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



Full 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)  

 

Всего записей: 410 | Зарегистр. 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!, только вообще уже ничего не помню.

Всего записей: 4646 | Зарегистр. 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 >" и записать в файл.

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



Full 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  

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

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

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



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

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

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

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

Junior 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 ...

Всего записей: 125 | Зарегистр. 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

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

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

Junior 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% - его то и нет...

Всего записей: 125 | Зарегистр. 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

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

Всего записей: 1311 | Зарегистр. 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

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

Всего записей: 57 | Зарегистр. 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... "
 


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

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

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

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

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

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

Всего записей: 125 | Зарегистр. 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

Компьютерный форум 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