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

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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
 
EXE-шник будет всегда в одной папке рядом с батником
 
этот код не подхватил установщик в одной директории с созданным батником
 
for /F "usebackq delims=" %A in (`dir /B /A:-D "\*.exe"`) do "%~fA" {/VERYSILENT}
 
Добавлено:
Нашел в просторах инета и это работает !
 
@echo off
setlocal DisableDelayedExpansion
for %%I in ("%~dp0*.exe") do (
    start "Running %%~nI" /wait "%%I" /ключ
)
endlocal

Всего записей: 136 | Зарегистр. 17-07-2011 | Отправлено: 20:48 13-11-2022
BorlandIMHO

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

Цитата:
этот код не подхватил ... (`dir /B /A:-D "\*.exe"`) ...

И почему я не удивлён?...
В изображённом виде ищется экзешник в корне текущего диска.
Надо с корня в корне текущей папки - пишите так:
Цитата:
... (`dir /B /A:-D ".\*.exe"`) ...

И таки да, {пресловутые ключи} - это "впишите нужные ключи", сами {} не нужны.
 
Добавлено:

Цитата:
for %%I in ("%~dp0*.exe")...

Это "искать экзешник в папке с батником", и да, это правильно и работает.
Запустит все до единого экзешники, лежащие в одной папке с запускающим батником.
Если это именно то, что вам нужно - то да, мой вариант с dir является полнейшим излишеством...

----------
http://www.imho.ws

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 23:03 13-11-2022 | Исправлено: BorlandIMHO, 23:23 13-11-2022
GCRaistlin



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

Цитата:
Надо с корня текущей папки - пишите так

С корня так не получится. Только в корне.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 23:19 13-11-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Согласен. Исправляю...

----------
http://www.imho.ws

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 23:22 13-11-2022
sjdb45



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята спасибо, помогли мне разобраться!
 
Оба варианта делают то, что мне и было нужно но, предпочтение взял над однострочным решением.
 
Добавлено:
Для чего было нужно постараюсь прояснить мою ситуацию:
Дело в том, что я слепил много установщиков при помощи модуля sfx 7z
Там решение такое что прописаны две директории и на каждую директорию задействованы свои команды
AutoInstall1= со своим путем  
AutoInstall2= со своим путем
А на RunProgram= повесил схему чтобы пользователь создал батник для выбора установки нужной ему директории
После нажатия на кнопку ОК создаются 2 батника рядом с установщиком и пользователь сам выбирает куда ставить:
RunProgram="hidcon:%%P:CMD /Q /C ECHO Start /wait %%M /ai1 /gm2>>\"%%S\Install_%NAME%_to_roaming_location.bat\""
RunProgram="hidcon:%%P:CMD /Q /C ECHO exit>>\"%%S\Install_%NAME%_to_roaming_location.bat\""
RunProgram="hidcon:%%P:CMD /Q /C ECHO Start /wait %%M /ai2 /gm2>>\"%%S\Install_%NAME%_to_commonfiles_location.bat\""
RunProgram="hidcon:%%P:CMD /Q /C ECHO exit>>\"%%S\Install_%NAME%_to_commonfiles_location.bat\""
 
И в конечном итоге созданные батники выглядят так:
Start /wait имя_установщика.exe /ai1 /gm2
exit
Start /wait имя_установщика.exe /ai2 /gm2
exit
 
Код который вы мне подсказали не подходит в виду того что установщик ругается вот на (") эти вот штучки в коде.
По этому пришлось упростить...
Можно было просто упаковать готовые батники и при нажатии на кнопку вывалить их рядом с установщиком, но что сделал то сделал.
Благодарю еще раз!

Всего записей: 136 | Зарегистр. 17-07-2011 | Отправлено: 01:41 14-11-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никто не знает, из батника можно обновить иконки трея?
чтоб пропали иконки убитых процессов,
окно которых не ловят wm_close.
перезагрузка експлорера целиком, слишком кардинально

Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 05:15 14-11-2022
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WinXPSP3, пишу 1.bat:
----------------------
chcp 65001
dir
----------------------
, запускаю - пишет текущая кодовая страница: 65001 и всё! - листинг директории не выводит. Аналогично chcp 65001 ломает консоль, если перевести её на utf8, добавив в реестр HKLM/Software/Miсrosoft/Command Processor/AutoRun с содержимым "@chcp 65001 > NUL"
 
 - в чём может быть дело? - в win98 chcp работала нормально, если мне не изменяет память...

Всего записей: 3677 | Зарегистр. 16-06-2007 | Отправлено: 12:34 14-11-2022 | Исправлено: Alexyz21, 12:35 14-11-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21  в DOS в cmd юзай кодировку  866 ( chcp  866).   А chcp 65001  WIN XP и сервер 2003  имхо вообще  не знали.
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11946 | Зарегистр. 10-12-2003 | Отправлено: 13:13 14-11-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Символ перевода строки при активной странице 65001 корректно обрабатывается начиная с Vista. Если нужен только корректный вывод на экран, работа с юникодными FOR-переменными (если сет - не вывод команды) или значениями, получаемыми по SET /P, переключение в 65001 не требуется.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 13:17 14-11-2022
Alexyz21



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

Всего записей: 3677 | Зарегистр. 16-06-2007 | Отправлено: 13:23 14-11-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Шрифт для консоли выберите Lucida Console.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 13:33 14-11-2022
metatrop

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

Цитата:
 
WinXPSP3, пишу 1.bat:
----------------------
chcp 65001
dir
----------------------
, запускаю - пишет текущая кодовая страница: 65001 и всё! - листинг директории не выводит.  
 

 
Попробовал - работает как в 2003, так и в WinPE XP (SP3). type utf8.txt читабельно выводит русские буквы (под chcp 65001), хотя в текстовом файле UTF8-префикс BOM за префикс не считается и тоже выводится символом. Команда dir правильно отображает русское имя директории.
 
Запускался cmd.exe отдельным окном, обязательно с шрифтом Lucida Console, а не растровым терминальным. Если в таком окне запустить FAR2 - тоже всё работает (chcp, dir и type из его внутренней ком. строки).

Всего записей: 327 | Зарегистр. 17-09-2010 | Отправлено: 13:52 14-11-2022
Alexyz21



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

Цитата:
 работает как в 2003, так и в WinPE XP (SP3)

нужно не в ручную, а в батнике, именно в нём и не работает

Всего записей: 3677 | Зарегистр. 16-06-2007 | Отправлено: 13:59 14-11-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
В батнике тоже можно, если команды объединить через &. Только значения все равно неправильные будут.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 14:09 14-11-2022
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Спасибо за объяснение 13:17, именно такое ощущение и возникало, что \r\n не обрабатывается нормально.
 
Для XP рабочей, полностью совместимой альтернативы cmd.exe нет?

Всего записей: 3677 | Зарегистр. 16-06-2007 | Отправлено: 14:16 14-11-2022 | Исправлено: Alexyz21, 14:17 14-11-2022
metatrop

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
start cmd /k "chcp 65001& type utf8.txt& pause& dir& pause& chcp 866"
 
type однако выводит "кракозябры" в отличие от интерактивного режима, dir выводит нормальные русские буквы. А если отдельными строками - тогда да, всё плохо. GCRaistlin, видимо, это и подразумевал.

Всего записей: 327 | Зарегистр. 17-09-2010 | Отправлено: 14:18 14-11-2022 | Исправлено: metatrop, 14:19 14-11-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21
Смотря что вам нужно. Фактически единственное ограничение, которое приходит в голову, - невозможность получения имен файлов с атрибутами Hidden и System: классический FOR их не видит, и парсить вывод DIR тоже нет смысла, т. к. выводит ерунду.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 14:30 14-11-2022
Alexyz21



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

Всего записей: 3677 | Зарегистр. 16-06-2007 | Отправлено: 14:42 14-11-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
а если сначала в файл, а потом for?
 
у меня пашет. на семерке. или вы о хп? перегрузится сейчас не могу
for /f "delims=" %%i in ('dir /a:SH /b C:\') do echo %%i

Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 18:52 16-11-2022 | Исправлено: bomzz, 18:56 16-11-2022
sjdb45



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго дня!
После долгих гуляний по интернету в поисках этой задачи решил обратится к вам за помощью.
Имеется недоделанный проект с выбором приложений с галочкам.
После выбока чекбоксов и нажатия на кнопку, проект генерирует файл soft.ini такого порядка:
 
[run]
1=FirstName.exe
2=LastName.exe
3=SomeName.exe
....
Может продолжаться в зависимости от выбранных приложений.
 
Имена установщиков известны - (прописанные имена как бы к примеру).
 
Так вот, нужен такой скрипт в который я пропишу список с точными именами всех установшиков которые вообще имеются в папке,  
затем после его запуска он просканирует файл "soft.ini" тех приложений которых выбрали к установке,
и по всем найденным именам запустит их установку из списка.
Возможно ли создать такой скрипт помогите ребята кто знает.
Буду очень благодарен.

Всего записей: 136 | Зарегистр. 17-07-2011 | Отправлено: 22:31 16-11-2022
   

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