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

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

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

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

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)

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



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех.
 
Прошу подсказать, как решить вопрос.
Вопрос такой - есть *.cmd-файл, который изменяет значение ключей реестра с 0 на 1:

Цитата:
@echo off
cls
reg add "HKCU\SOFTWARE\Test" /v "Key1" /t "reg_dword" /d "1" /f
reg add "HKCU\SOFTWARE\Test" /v "Key2" /t "reg_dword" /d "1" /f
pause
exit

Требуется изменить значения ключей реестра от имени текущего владельца, не заменяя его (например, от имени TrustedInstaller).
Есть portable-утилита SetACL, с помощью которой можно это сделать.
Какие строки нужно для этого добавить в *.cmd-файл?

 
********
 
Вопрос исчерпан, спасибо westlife

Всего записей: 2226 | Зарегистр. 23-10-2009 | Отправлено: 00:52 20-08-2017 | Исправлено: Tridentifer, 18:57 21-08-2017
mikhaelkh

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как правильно перезапустить проводник с помощью батника в Windows 10?
EDIT: Нашёл:
Код:
nircmdc restartexplorer

Всего записей: 504 | Зарегистр. 19-08-2011 | Отправлено: 02:03 21-08-2017 | Исправлено: mikhaelkh, 02:07 21-08-2017
redson



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как в cmd (windows) посмотреть конфиг, т.е вывести на экран содержимое файла без комментариев (без решетки #). пример содержимого файла squid.conf:
 
...
 
#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
 
а надо вот так:
 
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
 
P.S. В linux есть удобный grep, но виндовый grep не осилил мои регулярки, которые рабатают у меня под linux.

Всего записей: 1301 | Зарегистр. 23-04-2007 | Отправлено: 12:43 28-08-2017 | Исправлено: redson, 12:46 28-08-2017
Ang



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
redson
Попробуйте так:
findstr /V "#" squid.conf
 
Строки с комментарием (в любом месте строки) будут пропущены.
 
Если же интересует пропуск именно закомментированных строк:
findstr /R /V /C:"^[ \t]*#" squid.conf

Всего записей: 251 | Зарегистр. 25-07-2001 | Отправлено: 14:57 28-08-2017 | Исправлено: Ang, 15:10 28-08-2017
redson



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




Все благодарности посредством ПМ

Всего записей: 1301 | Зарегистр. 23-04-2007 | Отправлено: 16:20 28-08-2017 | Исправлено: Maz, 21:24 04-09-2017
sergiokapone



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
file.txt
 
 
Код:
   FORM:DJVM [52347]  
        DIRM [98]         Document directory (bundled, 8 files 7 pages)
        FORM:DJVI [5342] {book0007.djbz} [I]
          Djbz [5330]       JB2 shared dictionary
        FORM:DJVU [8420] {book.djvu} [P1]
          INFO [10]         DjVu 2940x4548, v25, 600 dpi, gamma=2.2
          INCL [13]         Indirection chunk --> {book0007.djbz}
          Sjbz [8368]       JB2 bilevel data
        FORM:DJVU [8122] {book0002.djvu} [P2]
          INFO [10]         DjVu 2940x4548, v25, 600 dpi, gamma=2.2
          INCL [13]         Indirection chunk --> {book0007.djbz}
          Sjbz [8070]       JB2 bilevel data
        FORM:DJVU [3993] {book0003.djvu} [P3]
          INFO [10]         DjVu 2940x4548, v25, 600 dpi, gamma=2.2
          INCL [13]         Indirection chunk --> {book0007.djbz}
          Sjbz [3941]       JB2 bilevel data
 

 
Нужно из вышеприведенного файла вытащить число 600.  Реализация с помощью sed и grep.
 

Код:
 @echo off  
FOR /F "tokens=* USEBACKQ" %%F IN (`grep -oP "[0-9]+\sdpi" file.txt ^| sed -r "s/\sdpi//"`) DO (
SET Resolution=%%F
)
echo %Resolution%    
pause
exit

 
Можно сделать более лаконично?
 

Всего записей: 526 | Зарегистр. 07-06-2011 | Отправлено: 14:58 03-09-2017 | Исправлено: sergiokapone, 17:44 03-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли из комстроки узнать версии пакетов Microsoft Visual C++, установленных в системе?

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 14:57 05-09-2017
MKN



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

Цитата:
Можно ли из комстроки узнать версии пакетов Microsoft Visual C++, установленных в системе?

через WMI...

Код:
 
wmic product get name, version | FIND "C++"
PAUSE

 

можно конечно извлекать версии из реестра, но это более громоздко...

Всего записей: 4668 | Зарегистр. 21-04-2005 | Отправлено: 16:56 05-09-2017 | Исправлено: MKN, 18:07 05-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MKN
Спасибо. "%" перед "С++" видимо опечатка.
Вопрос. Почему в конце некоторых строк выводится слово "False"?

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 18:01 05-09-2017
MKN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
korosya
% - опечатка
"False" у меня нигде не выводится... Возможно так помечаются "заглушки" из известного самопального пака vc++ ?

Всего записей: 4668 | Зарегистр. 21-04-2005 | Отправлено: 18:07 05-09-2017
korosya

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

Цитата:
можно конечно извлекать версии из реестра, но это более громоздко...

Не подскажите какие ключи проверять? wmic работает все-таки достаточно долго..

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 08:59 06-09-2017 | Исправлено: korosya, 09:12 06-09-2017
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
korosya
Можно искать по DisplayName в HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
... или в Installer\Products
Но в каждой ветке искать отдельно.

Всего записей: 9960 | Зарегистр. 11-03-2002 | Отправлено: 10:00 06-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что-то не соображу как разделить получаемую строку. Пытаюсь

Код:
FOR /f "delims= " %i in ('wmic product get name, version ^| FIND "C++"') do echo %i

Получаю:

Цитата:
Неверное выражение GET

 
Мне надо получить версии пакетов Microsoft Visual C++ в виде, например, "9.00.30729.6161" для 2008

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 11:47 06-09-2017
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
korosya
Если только версии - то можно отфильтровать сразу в запросе WMIC и получить только версии:
Цитата:
wmic product where "Name like '%Visual C++ 20%'" get version /value /format:csv
Это для комстроки, в батнике понадобятся двойные %%

Всего записей: 9960 | Зарегистр. 11-03-2002 | Отправлено: 12:14 06-09-2017 | Исправлено: Pasha_ZZZ, 12:15 06-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
То что надо! Большое спасибо

Код:
FOR /f "tokens=1* delims=," %i in ('wmic product where "Name like '%Visual C++ 20%'" get version /value /format:csv') do echo %j

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 12:50 06-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, MKN
Все-таки wmic работает очень долго(... А нельзя ли с помощью vbs или js?...

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 10:46 07-09-2017
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
korosya
Можно. Где в реестре искать я указал...
 
Добавлено:
korosya
Шаблончик, выводит номера версий...
Цитата:
@echo off
 
for /f "tokens=*" %%a in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products /s /f "*Visual C++ 20*"^|findstr /b /l /i /c:HKEY_LOCAL_MACHINE') do call :CheckProduct %%a
goto :eof
 
:CheckProduct
reg query %1 /v DisplayVersion|findstr /l /i /c:DisplayVersion
goto :eof

Всего записей: 9960 | Зарегистр. 11-03-2002 | Отправлено: 10:57 07-09-2017
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну или однострочный вариант, который выводит только номера версий
Цитата:
for /f "tokens=*" %%a in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products /s /f "*Visual C++ 20*"^|findstr /b /l /i /c:HKEY_LOCAL_MACHINE') do for /f "tokens=2*" %%b in ('reg query %%a /v DisplayVersion^|findstr /l /i /c:DisplayVersion') do echo %%c

Всего записей: 9960 | Зарегистр. 11-03-2002 | Отправлено: 13:03 07-09-2017
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Спасибо.
Действительно, что-то я ступил).  
Я уже сделал через reg query /s. Правда ищу в HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall, а не в HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products. Кстати ваш скрипт не рабочий - потерян findstr для "*Visual C++ 20*" и ключ /f для reg query не используется.

Всего записей: 970 | Зарегистр. 19-07-2003 | Отправлено: 14:10 07-09-2017
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
korosya
Цитата:
Кстати ваш скрипт не рабочий - потерян findstr для "*Visual C++ 20*" и ключ /f для reg query не используется.
Все работает и проверено: фраза в кавычках - как раз для /F из REG QUERY, ничего нигде не потеряно

Всего записей: 9960 | Зарегистр. 11-03-2002 | Отправлено: 14:23 07-09-2017
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru