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

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

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



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

Цитата:
Новая задачка появилась. Вроде простая.
В общем нужно поработать с вычитанием 16-тиричных чисел до 100 знаков.  

Попробуйте использовать bc под Windows - http://gnuwin32.sourceforge.net/packages/bc.htm

Всего записей: 688 | Зарегистр. 12-09-2017 | Отправлено: 17:21 08-11-2021
Artem_Butenko



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

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 14:39 10-11-2021
lexapass



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

Код:
 
set "ProgramPath="
for /f "tokens=2*" %%a in ('reg query HKLM\Software\ProgramKey /v ProgramPath 2^>nul ^| find /i "ProgramPath"') do set "ProgramPath=%%~b"
if defined ProgramPath if not exist "%ProgramPath%\ProgramName.exe" set "ProgramPath="
if not defined ProgramPath "%~dp0ProgramName.exe"

Всего записей: 567 | Зарегистр. 11-10-2004 | Отправлено: 16:29 10-11-2021
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lexapass
 
Благодарю Вас добрый человек!
 

Цитата:
set "ProgramPath="
for /f "tokens=2*" %%a in ('reg query HKLM\Software\ProgramKey /v ProgramPath 2^>nul ^| find /i "ProgramPath"') do set "ProgramPath=%%~b"
if defined ProgramPath if not exist "%ProgramPath%\ProgramName.exe" set "ProgramPath="
if not defined ProgramPath "%~dp0ProgramName.exe"  

Можно ли показать данный алгоритм на примере, скажем 7-Zip?
Поясните пожалуйста, каким образом включить редирект для 64-х битных ОС.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 16:34 10-11-2021 | Исправлено: Artem_Butenko, 09:30 11-11-2021
lexapass



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

Цитата:
Можно ли показать данный алгоритм на примере, скажем 7-Zip?  


Код:
set "SZipPath="
for /f "tokens=2*" %%a in ('reg query HKLM\Software\7-Zip /v Path 2^>nul ^| find /i "Path"') do set "SZipPath=%%~b"
if defined SZipPath if not exist "%SZipPath%7zFM.exe" set "SZipPath="
if not defined SZipPath "%~dp07zFM.exe"  

 

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

Поясните для начала, что за редирект имеется в виду?

Всего записей: 567 | Зарегистр. 11-10-2004 | Отправлено: 11:15 11-11-2021 | Исправлено: lexapass, 12:15 11-11-2021
KiloSub



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем приве, здщравствуйте доччи)




флуд. в бан

Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 11:29 11-11-2021 | Исправлено: Maz, 13:22 11-11-2021
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lexapass
 
1.
Цитата:
Поясните пожалуйста, каким образом включить редирект для 64-х битных ОС.

Для 32-х битных приложений в 64-х разрядных ОС записи осуществляются в ветвь реестра "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node", а не в "HKEY_LOCAL_MACHINE\SOFTWARE" (как в "родной 32-х битной ОС).
 
2. Сценарий не работает, если значение параметра ключа системного реестра в строковом параметре заключено в кавычки. Как я понимаю, их нужно отсечь? Например, ключ "HKLM\Software\ProgramKey" имеет параметр "ProgramPath", содержащий путь заключенный в кавычки "C:\Program Files (x86)\MyProgram".

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 11:51 11-11-2021 | Исправлено: Artem_Butenko, 11:52 11-11-2021
lexapass



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

Цитата:
1. Для 32-х битных приложений в 64-х разрядных ОС записи осуществляются в ветвь реестра "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node", а не в "HKEY_LOCAL_MACHINE\SOFTWARE" (как в "родной 32-х битной ОС).  

Какая тут связь с командной строкой и скриптом?

Цитата:
2. Сценарий не работает, если значение параметра ключа системного реестра в строковом параметре заключено в кавычки. Как я понимаю, их нужно отсечь? Например, ключ "HKLM\Software\ProgramKey" имеет параметр "ProgramPath", содержащий путь заключенный в кавычки "C:\Program Files (x86)\MyProgram".

Для чего тогда символ "~" в присвоении?

Всего записей: 567 | Зарегистр. 11-10-2004 | Отправлено: 12:28 11-11-2021
KiloSub



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




флуд

Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 13:09 11-11-2021 | Исправлено: Maz, 13:22 11-11-2021
Artem_Butenko



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

Цитата:
Какая тут связь с командной строкой и скриптом?

Прямая. Откуда и что читать. Например, для одного и того же приложения в x64 системе запись будет выглядеть так, - "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\MyProgram", а в x86, следующим образом: "HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram".
 

Цитата:
Для чего тогда символ "~" в присвоении?

Принял.
 
3. Сценарий почему-то передаёт запускаемому исполняемому файлу параметр set.

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 13:09 11-11-2021
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Artem_Butenko
Это если приложение 32-битное. Тогда можно добавить к команде reg query ключ /reg:32

Всего записей: 12741 | Зарегистр. 11-03-2002 | Отправлено: 14:10 11-11-2021
lexapass



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
Вижу, что сценарий сильно меняется по ходу этой пьесы, потому заканчиваю свое участие, следующие акты без меня. Все эти вопросы вполне решаемы самостоятельно.

Цитата:
Прямая. Откуда и что читать. Например, для одного и того же приложения в x64 системе запись будет выглядеть так, - "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\MyProgram", а в x86, следующим образом: "HKEY_LOCAL_MACHINE\SOFTWARE\MyProgram".  

Если озаботились определением разрядности, то в шапке есть отправная точка - Переход из 32-битной версии cmd.exe в 64-битную. В обратную сторону это тоже работает.

Цитата:
3. Сценарий почему-то передаёт запускаемому исполняемому файлу параметр set.

По всей видимости в Вашем коде ошибка.

Всего записей: 567 | Зарегистр. 11-10-2004 | Отправлено: 14:20 11-11-2021
Artem_Butenko



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

Цитата:
Вижу, что сценарий сильно меняется по ходу этой пьесы, потому заканчиваю свое участие, следующие акты без меня. Все эти вопросы вполне решаемы самостоятельно.

Спасибо Вам за помощь.
 

Цитата:
По всей видимости в Вашем коде ошибка.

Пакетный сценарий искренне Ваш. Видимо неоднозначно обрабатывается для разных приложений...

Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 03:20 12-11-2021 | Исправлено: Artem_Butenko, 04:26 12-11-2021
Silver Raven

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По результатам отзыва юзеров, получается так, что вот этот простейший кусок cmd-шника порой работает некорректно:
 

Код:
 
set "SkyrimPrefsINI=%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SkyrimPrefs.ini"
set "PluginsListFolder=%USERPROFILE%\AppData\Local\Skyrim Special Edition"
 
if not exist "%SkyrimPrefsINI%" (
cls
color fc
 echo.
 echo.
 echo *ОШИБКА! SkyrimPrefs.ini не найден!
 echo.
 echo Используйте лаунчер игры для задания настроек, согласно своим предпочтениям.
 echo Перезапустите панель управления сборкой для повторного выполнения данной опции.
 echo.
 echo.
pause
exit
)
 
color f2
 @echo.
 @echo.
 @echo  ■ Копируется отсортированный список загрузки модов...
 if not exist "%PluginsListFolder%" md "%PluginsListFolder%"
 copy /y "Silver Raven mods pack data\Plugins list\plugins.txt" "%PluginsListFolder%\"
 
и т.д.
 

 
Файл по указанному пути есть - а ошибка все равно отображается. Я хоть убей не могу понять, как такое может быть. cmd не запускают на ОС старее Win7. Может, это как-то связано с тем, что имя пользователя написано на кириллице?

Всего записей: 149 | Зарегистр. 12-10-2012 | Отправлено: 23:44 13-11-2021 | Исправлено: Silver Raven, 11:55 14-11-2021
GCRaistlin



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

Цитата:
Может, это как-то связано с тем, что имя пользователя написано на кириллице?

Что мешает проверить самому?

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

Всего записей: 4113 | Зарегистр. 18-04-2005 | Отправлено: 00:18 14-11-2021
INKOGNI



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Нужен батник для удаления на компьютере папок с названиями начинающимися с https+++

Всего записей: 1362 | Зарегистр. 09-01-2006 | Отправлено: 04:02 14-11-2021
Silver Raven

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

Цитата:
Что мешает проверить самому?

Отсутствие Win 10 Home (где только онлайн учетки) и Win 7. Или предложите установить, только ради одного cmd-шника?

Всего записей: 149 | Зарегистр. 12-10-2012 | Отправлено: 11:54 14-11-2021 | Исправлено: Silver Raven, 11:54 14-11-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Silver Raven
Проверьте на чем есть. Едва ли проблема связана с конкретной ОС.

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

Всего записей: 4113 | Зарегистр. 18-04-2005 | Отправлено: 12:02 14-11-2021
Silver Raven

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
На чем есть - работает. Коду года 2. А массовые жалобы начались только сейчас. НО! раньше он был скомпилирован в виде exe файла. Пришлось отказаться из-за психоза майкросовтовского дефендера и китайских поделок. Все остальные, шум не поднимали.

Всего записей: 149 | Зарегистр. 12-10-2012 | Отправлено: 12:17 14-11-2021
Pasha_ZZZ



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

Цитата:
Отсутствие Win 10 Home (где только онлайн учетки)

Это что за бред и откуда

Всего записей: 12741 | Зарегистр. 11-03-2002 | Отправлено: 12:21 14-11-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