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

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

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



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

Всего записей: 2385 | Зарегистр. 11-12-2002 | Отправлено: 16:04 18-11-2020 | Исправлено: kot1313, 19:25 21-01-2021
YuS 2



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

Цитата:
Это банальный запуск приложения cmd.exe с параметром %a в командной строке.

Всё, что привело к решению вопроса, априори, является банальным... заявить о нерешаемом вопросе и особенностях реализации - ещё проще, чем банально...

Всего записей: 3199 | Зарегистр. 03-02-2009 | Отправлено: 21:37 18-11-2020
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2
И кто после этого тут у нас не любит спорить ради спора? Продемонстрируйте, пожалуйста, как из вашего вложенного цикла вынести значение переменной во внешний. Или как в нем переключить состояние delayed expansion туда-обратно. Или это редко используемые возможности и поэтому невозможность их реализации не имеет значения?

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

Всего записей: 3086 | Зарегистр. 18-04-2005 | Отправлено: 21:43 18-11-2020 | Исправлено: GCRaistlin, 21:43 18-11-2020
YuS 2



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

Цитата:
И кто после этого тут у нас не любит спорить ради спора?

Да что же ты всё щёки свои пучишь? Смотри лопнут... тебе я вообще не возражал и не спорил с тобой, так шта остынь.
 

Цитата:
Продемонстрируйте, пожалуйста, как из вашего вложенного цикла вынести значение переменной во внешний.

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

Цитата:
Или это редко используемые возможности и поэтому невозможность их реализации не имеет значения?

Не умничай, ума палата... и не додумывай за оппонента ответы, это совсем плохой тон, не превращайся из невежды в невежу.

Всего записей: 3199 | Зарегистр. 03-02-2009 | Отправлено: 09:42 19-11-2020
KiloSub



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS 2
Более уважаемого человека, чем этот носорог, я не встречал. Пожалуйста, оставьте свое мнение при себе.

Всего записей: 386 | Зарегистр. 30-05-2020 | Отправлено: 10:54 19-11-2020
Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KiloSub
YuS 2
заканчивайте обсуждение друг друга

----------
Я прав! Если не прав

Всего записей: 37441 | Зарегистр. 26-02-2002 | Отправлено: 13:34 19-11-2020
KiloSub



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maz
Я не люблю, когда мне лезут в душу, тем более, когда в неё плюют.




оффтоп, дальше советую не продолжать оффтопить

Всего записей: 386 | Зарегистр. 30-05-2020 | Отправлено: 14:24 19-11-2020 | Исправлено: Maz, 17:00 19-11-2020
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  Уважаемые Камрады, прошу Вашей помощи. Возникла "тривиальная" задача, прочитать значение ключей "*.ini-файла" и записать их в переменные. Например, имеем "*.ini-файл" следующего содержания. Необходимо прочитать, значение ключей (Key1, Key2 и Key3), каждый в отдельную переменную, для дальнейшего использования в пакетном скрипте.
   Первично, можно ли выполнить следующие проверки:
  1. Присутствие файла "Settings.ini", рядом с пакетным файлом сценария, если конфигурационный файл не найден, создать его со следующим содержанием (рядом с пакетным файлом сценария) и завершить работу пакетного файла.
  2. Проверить, присутствие в конфигурационном файле, всех ключей (Key1, Key2 и Key3), если хотя бы один из них не найден создать новый "Settings.ini" (рядом с пакетным файлом сценария), со следующим содержанием и завершить работу пакетного файла.
  3. Можно ли избавиться от символа решетки (#) в пробелах между строками "Settings.ini", например. Просто, во всех похожих примерах он используется. Назначение данного символа мне неизвестно.
   Признаюсь, просмотрел все части топика в версии для печати, похожий пример нашёл. Только вовсе в нём запутался. Буду Вам сердечно благодарен за помощь!
--------------------------------------
 
lexapass
Большое Вам человеческое спасибо за помощь!

Всего записей: 657 | Зарегистр. 19-02-2008 | Отправлено: 02:42 21-11-2020 | Исправлено: Artem_Butenko, 04:48 23-11-2020
dedulya68



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Есть такой батник
Как его изменить, чтоб при запуске создавалась следующая резервная копия с цифрой (1,2,3...)?

Всего записей: 822 | Зарегистр. 22-12-2016 | Отправлено: 03:25 21-11-2020
khasia



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

Цитата:
Как его изменить,

Попробуй так, после выполнения рядом с батником "ляжет" метка с номером только что созданной копии.

Цитата:
@echo off
pushd "%~dp0"
robocopy "D:\CentBrowser\User Data" "D:\User Data" /E
if not exist *.BAKUP set x=>0.BAKUP
:NUM
for /F "delims=" %%A in ('dir "%~dp0*.BAKUP" /b /s') do (set /A G=%%~nA)
set /A M=%G%+1
If not exist "D:\User Data_%M%" (ren "D:\User Data" "User Data_%M%") else (move /y %G%.BAKUP %M%.BAKUP&goto :NUM)
move /y %G%.BAKUP %M%.BAKUP
pause

Тестировал только на пустых папках т.е. без самого процесса robocopy.

Всего записей: 2245 | Зарегистр. 18-02-2010 | Отправлено: 14:59 21-11-2020
dedulya68



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
khasia
Отлично. А можно, чтоб после отработки батника, удалялся файл (1,...).BAKUP

Всего записей: 822 | Зарегистр. 22-12-2016 | Отправлено: 15:22 21-11-2020
khasia



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вообще-то я его оставлял как точку отсчета и для наглядности какая последняя копия. Но если очень нужно то можно и удалить. Только если по каким то причинам вы удалите какую-нибудь копию то следующее копирование займет этот номер.  
в батнике строку

Цитата:
move /y %G%.BAKUP %M%.BAKUP  

заменить на

Цитата:
del /f /q %G%.BAKUP


Всего записей: 2245 | Зарегистр. 18-02-2010 | Отправлено: 15:37 21-11-2020 | Исправлено: khasia, 15:38 21-11-2020
dedulya68



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

Цитата:
заменить на

То,что надо

Всего записей: 822 | Зарегистр. 22-12-2016 | Отправлено: 15:56 21-11-2020
lexapass



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Для 1 и 2 пример проверок ниже.
Найденный Вами пример чтения из INI следует сохранить рядом под именем readini.cmd, так как он будет использоваться для чтения значения ключей из Settings.ini.
По п.3 уже было нечто близкое.

Код:
@echo off
setlocal enabledelayedexpansion
 
rem Проверка п.1
if not exist Settings.ini goto :CreateSettingsIni
 
rem Проверка п.2
Set /a KeysCount=0
for %%k in (Key1 Key2 Key3) do for /f %%v in ('call readini.cmd Settings.ini "Settings" "%%k" ^|find "%%k="') do set /a KeysCount+=1
if !KeysCount! NEQ 3 goto :CreateSettingsIni
 
rem Здесь можно работать с ключами
for %%k in (Key1 Key2 Key3) do for /f "tokens=2* delims==" %%v in ('call readini.cmd Settings.ini "Settings" "%%k" ^|find "%%k="') do set "%%kValue=%%v"
 
echo Key1=%Key1Value%
echo Key2=%Key2Value%
echo Key3=%Key3Value%
 
goto :eof
 
:CreateSettingsIni
echo [Settings]>Settings.ini
echo.>>Settings.ini
echo Key1=>>Settings.ini
echo Key2=>>Settings.ini
echo Key3=>>Settings.ini
exit /b

 

Всего записей: 550 | Зарегистр. 11-10-2004 | Отправлено: 16:08 21-11-2020 | Исправлено: lexapass, 10:57 22-11-2020
ygoda52

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, в чём причина.Скрипт vbs на Windows 7 работает, а на Windows 10 выдаёт синтаксическую ошибку 800a03ea

Всего записей: 57 | Зарегистр. 28-08-2010 | Отправлено: 21:17 26-11-2020
Fenrizz



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

Цитата:
Всем привет. Есть такой батник [?]  
Как его изменить, чтоб при запуске создавалась следующая резервная копия с цифрой (1,2,3...)?  

 

Цитата:
set "FolderNumber=0"
 
:FolderNameLoop
set /A FolderNumber+=1
if exist "D:\User Data%FolderNumber%" goto FolderNameLoop
 
robocopy "D:\CentBrowser\User Data" "D:\User Data%FolderNumber%" /E  

 
 

Всего записей: 410 | Зарегистр. 12-09-2017 | Отправлено: 23:15 26-11-2020 | Исправлено: Fenrizz, 23:17 26-11-2020
Artem_Butenko



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

Цитата:
  Уважаемые Камрады, прошу Вашей помощи. Возникла "тривиальная" задача, прочитать значение ключей "*.ini-файла" и записать их в переменные. Например, имеем "*.ini-файл" следующего содержания. Необходимо прочитать, значение ключей (Key1, Key2 и Key3), каждый в отдельную переменную, для дальнейшего использования в пакетном скрипте.
   Первично, можно ли выполнить следующие проверки:
  1. Присутствие файла "Settings.ini", рядом с пакетным файлом сценария, если конфигурационный файл не найден, создать его со следующим содержанием (рядом с пакетным файлом сценария) и завершить работу пакетного файла.
  2. Проверить, присутствие в конфигурационном файле, всех ключей (Key1, Key2 и Key3), если хотя бы один из них не найден создать новый "Settings.ini" (рядом с пакетным файлом сценария), со следующим содержанием и завершить работу пакетного файла.
  3. Можно ли избавиться от символа решетки (#) в пробелах между строками "Settings.ini", например. Просто, во всех похожих примерах он используется. Назначение данного символа мне неизвестно.
   Признаюсь, просмотрел все части топика в версии для печати, похожий пример нашёл. Только вовсе в нём запутался. Буду Вам сердечно благодарен за помощь!
--------------------------------------  

 
Попробовал детальнее. Пакетный файл множит процессы "cmd.exe", прочитать "инишник" не получается.

Всего записей: 657 | Зарегистр. 19-02-2008 | Отправлено: 03:32 27-11-2020
bytie

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Можно попробовать INIFILE от Horst Schaeffer
https://www.horstmuc.de/wbat32.htm#inifile

Всего записей: 261 | Зарегистр. 18-08-2005 | Отправлено: 09:36 27-11-2020
lexapass



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

Цитата:
Попробовал детальнее. Пакетный файл множит процессы "cmd.exe", прочитать "инишник" не получается.

Вы не сообщили ничего существенного, так что я не могу сказать, в чем ошибка.
Исходные данные одинаковы.
Мой пример при условии сохранения рядом с ним файла readini_nt.txt из Вашей ссылки под именем readini.cmd, как указывал ранее, вполне корректно отрабатывает пункты 1 и 2 и для подходящего Settings.ini выводит значения ключей.
Проверяйт readini.cmd и его вызовы, наверное. Его текст достаточно информативен.
 

Всего записей: 550 | Зарегистр. 11-10-2004 | Отправлено: 11:56 27-11-2020
notinthewoods

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если сделать такой запрос (для цитаты в ссылке латинское p заменено на русское р):

Цитата:
curl -k httрs://cshive.com/model/265748 >barbaradance_01.xml

или

Цитата:
http GET httрs://cshive.com/model/265748 >barbaradance_02.xml

Получается внушительный документ с кучей данных.
Как сделать запрос с дополнительными параметрами, чтобы извлечь только плейлист m3u8 ?
Выглядит он, напр. вот так:

Цитата:
httрs://edge316.stream.highwebmedia.com/live-hls/amlst:barbaradance-sd-741c6327c557f5f0a0ea9cc665c268bfa9be039a5307ed5147a9a3247bb2777d_trns_h264/playlist.m3u8

Примечание.
1. Плейлист будет фигурировать в документе только в том случае, если вещатель (конкретный номер, в данном случае - 265748) находится онлайн.
2. Какой конкретно вещатель - в данном случае, не важно. Кто онлайн - можно увидеть на главной странице cshive.com.
3. Плейлист нужен как переменное значение для подстановки в программу записи потока именно с сайта cshive.com (по определенным причинам, связанных с геолокацией).

Всего записей: 123 | Зарегистр. 31-01-2015 | Отправлено: 19:38 27-11-2020 | Исправлено: notinthewoods, 19:39 27-11-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

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