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

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

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

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

Всего записей: 38098 | Зарегистр. 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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

Всего записей: 1662 | Зарегистр. 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
 
Код который вы мне подсказали не подходит в виду того что установщик ругается вот на (") эти вот штучки в коде.
По этому пришлось упростить...
Можно было просто упаковать готовые батники и при нажатии на кнопку вывалить их рядом с установщиком, но что сделал то сделал.
Благодарю еще раз!

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

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

Всего записей: 3382 | Зарегистр. 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 работала нормально, если мне не изменяет память...

Всего записей: 2989 | Зарегистр. 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  имхо вообще  не знали.
 


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

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



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

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

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



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

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



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

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

Всего записей: 3550 | Зарегистр. 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 из его внутренней ком. строки).

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



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

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

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

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



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

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

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



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

Всего записей: 2989 | Зарегистр. 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, видимо, это и подразумевал.

Всего записей: 293 | Зарегистр. 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

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



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

Всего записей: 2989 | Зарегистр. 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

Всего записей: 3382 | Зарегистр. 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" тех приложений которых выбрали к установке,
и по всем найденным именам запустит их установку из списка.
Возможно ли создать такой скрипт помогите ребята кто знает.
Буду очень благодарен.

Всего записей: 130 | Зарегистр. 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru