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

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

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

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Спасибо! Как всё просто, оказывается.

Код:
E:\proba>set url=https://www.youtube.com/watch?v=7FnbLyv2oio
 
E:\proba>echo %url%
https://www.youtube.com/watch?v=7FnbLyv2oio
 
E:\proba>for /f "delims=" %a in ('echo yt-dlp --get-filename -o "%(title)s.%(ext)s" %url%') do echo %a
 
E:\proba>echo yt-dlp --get-filename -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v 7FnbLyv2oio
yt-dlp --get-filename -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v 7FnbLyv2oio

Оказывается, в цикле символ = в URL-адресе тупо исчезает!
Переменную %url% в цикле нужно заключать в двойные кавычки.

Всего записей: 487 | Зарегистр. 31-01-2015 | Отправлено: 02:16 23-01-2024
GCRaistlin



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

Цитата:
Переменную %url% в цикле нужно заключать в двойные кавычки.

Или удвоить %.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 02:22 23-01-2024
notinthewoods



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

Цитата:
Или удвоить %

Именно в цикле батника. Да, спасибо.
*****
Добавлено.

Цитата:
FYI: это будет работать медленнее, чем ваша текущая реализация.

Честно говоря, разницы не заметил. Видимо, там различие в долях секунды..
У цикла очевидный плюс - не требуется записывать на диск лишний файл и потом удалять его.

Всего записей: 487 | Зарегистр. 31-01-2015 | Отправлено: 02:35 23-01-2024 | Исправлено: notinthewoods, 02:57 23-01-2024
kraeved



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
У нас нет доступа к разуму друг друга, поэтому взаимодействие построено
на допущениях. Человек, который просит: «Дай чем-нибудь записать номер»,
несёт свою долю ответственности за то, что получит обычную шариковую ручку,
а не карандаш или маркер. Ручка может отказать в положении вверх ногами,
но в 99% случаев в условиях земной гравитации пишут стержнем вниз, на что
и рассчитывал тот, кто дал ручку. И в канцелярских отделах не предупреждают:
«В космосе не пишет!», ибо ежедневные потребности покрываются и без того.
И я тоже не теряю сон, предложив решение, которое уже достаточно хорошо,
хотя может и не покрывать почему-то не упомянутые или крайние сценарии —
их можно учесть в следующей итерации. Или существует только версия 1.0?
 
   
 
Как в чернила ручки можно добавить сжатый азот, сделав её универсальнее,
так и в батник можно добавить пинг-понг или перевести его на язык ифкуиль,
дабы размять нейроны без кофеина и порадовать любителей экстра-точности.
Зато часовые заводы зачастую заявляют о водонепроницаемости в 30 метров
прямо на циферблате часов, но стоит помыть руки, слегка забрызгав часы,
и вскоре под их стеклом выступит испарина — вот они вводят в заблуждение.
Вы же, подходя к иным просьбам без эмпатии, без снисхождения к огрехам,
как будто мы на экзамене, забываете, что люди тут изначально открываются
в своей слабости, признают, что не могут справиться сами, просят о помощи,
как умеют, и будут рады даже шагу навстречу, хотя бы уточняющему вопросу.
Интернет-то и задумывался, чтобы преодолевать барьеры и сближать людей.

Всего записей: 1000 | Зарегистр. 01-03-2003 | Отправлено: 03:34 23-01-2024 | Исправлено: kraeved, 06:01 23-01-2024
GCRaistlin



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

Цитата:
Видимо, там различие в долях секунды.

Имеет смысл говорить только об относительной разнице. Вариант с временным файлом примерно втрое быстрее.
 
kraeved

Цитата:
люди ... будут рады даже шагу навстречу

Он был сделан:

Цитата:
Нет такого понятия - "текущая сетевая карта".

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

Цитата:
Интернет-то и задумывался, чтобы преодолевать барьеры и сближать людей.

Интернет вырос из проекта, ориентированного на военные нужды.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 11:03 23-01-2024 | Исправлено: GCRaistlin, 11:21 23-01-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                     Jonmey
       Это работает. Благодарю.
       В ощем виде:   cmd /k "Disk_Name: & cd "Path to Directory"". Пишут про '/d', но работает и без этого аргумента.
       Ещё про такое хочу спросить.
       Есть файл 'cmd.bat'. Если запустить его с повышенными правами через контекстное меню, то окно 'cmd' открывается мгновенно. А если использовать код:
 
     powershell "start cmd.bat -v runAs"
 
   то запускается со значительной задержкой. Если известна команда при запуске из контекстного меню, то можно ли её использоваить для запуска 'cmd.bat' с повышенными правами и какова эта команда?

Всего записей: 2206 | Зарегистр. 09-01-2010 | Отправлено: 13:35 23-01-2024 | Исправлено: LZAA, 01:38 24-01-2024
Inoz2000



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

Цитата:
какова эта команда?

Это команда runAs
 
Добавлено:
LZAA
Если на вашей системе долго происходит запуск powershell, то пробуйте vbs

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 13:38 23-01-2024
MaraGame24

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые знатоки )))
Можно ли зафиксировать местоположение окна CMD при выполнении BAT файла не прибегая к использованию ярлыка ???

Всего записей: 161 | Зарегистр. 25-11-2023 | Отправлено: 14:43 23-01-2024
FoDe

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey
Цитата:
https://stackoverflow.com/questions/19950842/batch-script-for-determining-relative-paths-in-a-loop

 
Оргомное спасибо. Все получилось.

Всего записей: 30 | Зарегистр. 04-03-2020 | Отправлено: 15:46 23-01-2024 | Исправлено: FoDe, 15:50 23-01-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                  Inoz2000
      Я команду 'powershell "start cmd.bat -v runAs"' в Net добыл. Сценарий 'vbs' для 'runAs' мне не попадался. Если Вы знаете этот код, напишите, пожалуйста.

Всего записей: 2206 | Зарегистр. 09-01-2010 | Отправлено: 15:46 23-01-2024
Inoz2000



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

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 17:23 23-01-2024
Arcadaw

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как сделать так, чтобы батник запустился под админом (без ввода пароля) или хотя бы запросил UAC и вылетело сообщение от "контроля учтеных записей" с да/нет.

Всего записей: 1506 | Зарегистр. 25-03-2004 | Отправлено: 19:46 23-01-2024
gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arcadaw
Цитата:
или хотя бы запросил UAC и вылетело сообщение от "контроля учтеных записей" с да/нет.
Так оно так и есть, если ничего не натвикано.
Цитата:
как сделать так, чтобы батник запустился под админом (без ввода пароля)
NTWind Hidden Start. Добавляет ключи запуска к ярлыку батника, на этой основе создает задание планировщика, в итоге запуск батника от админа или пользователя, консоль скрыта или видима, с запросом UAC или без.

Всего записей: 6318 | Зарегистр. 14-09-2020 | Отправлено: 19:55 23-01-2024
Arcadaw

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

Цитата:
Так оно так и есть, если ничего не натвикано.

Батник просто запускается как пользователь и не может допустим остановить службу или запустить.  
Я имею в виду, вот есть некие батники на руборде, которые там телеметрию отключт или еще что. Так вот эти батники запускаю как обычно - нажатием в проводнике или в Фар командере - и сразу выскакивает UAC с запросом да/нет. А у меня любые батники просто запускаются, но с ограниченными разрешениями - ничего не запрашивает.

Всего записей: 1506 | Зарегистр. 25-03-2004 | Отправлено: 20:24 23-01-2024
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почти не пользуюсь, но держу в %path% — скрипт: su.vbs
Пример использования в консоли CMD:
Код:
su notepad c:\windows\System32\drivers\etc\hosts

Всего записей: 3510 | Зарегистр. 16-08-2012 | Отправлено: 20:25 23-01-2024
DeZz



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

Цитата:
А как сделать так, чтобы батник запустился под админом  


Код:
NET SESSION
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO ADMINTASKS
:ELEVATE
CD /d %~dp0
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
exit
:ADMINTASKS
cls

Всего записей: 1154 | Зарегистр. 23-01-2006 | Отправлено: 21:08 23-01-2024
LZAA

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

Всего записей: 2206 | Зарегистр. 09-01-2010 | Отправлено: 21:11 23-01-2024
Simple Code

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
Для сценария cmd/bat.
Вставить в начале скрипта. По логике, перезапустит скрипт с правами админа.  

Код:
 
@echo off
reg QUERY "HKU\S-1-5-19" >nul 2>&1
if %ErrorLevel% EQU 1 (mshta "VBScript:CreateObject("Shell.Application").ShellExecute("%~fs0", "", "", "RunAs", 1) & Close()" & exit)
:: Ниже, Ваш основной код.
 

Работоспособность не проверял, используйте на свой страх и риск )
Исправил, теперь работает.

Всего записей: 159 | Зарегистр. 19-11-2022 | Отправлено: 00:09 24-01-2024 | Исправлено: Simple Code, 00:28 24-01-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                   Simple Code
    Это работает. Спасибо за содействие.
    Позвольте ещё о таком спросить. Я использую ещё такой сценарий  'vbs' для запуска пакетного файла:
 
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "Name", 0
 
   Как отдельный сценарий это работает. Вопрос: можно ли добавить в пакетный файл ещё один 'vbs' код, который будет выполнять такое же действие,  вместе с Вашим кодом. То есть, чтобы три команды работали из одного пакетного файла?

Всего записей: 2206 | Зарегистр. 09-01-2010 | Отправлено: 01:01 24-01-2024 | Исправлено: LZAA, 01:16 24-01-2024
Simple Code

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

Код:
 
mshta VBScript:Execute("Set WshShell = CreateObject(""WScript.Shell"") : WshShell.Run ""Name"", 0 :Close")
 

Всего записей: 159 | Зарегистр. 19-11-2022 | Отправлено: 01:19 24-01-2024
Открыть новую тему     Написать ответ в эту тему

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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru