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

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

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

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

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



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

Цитата:
vim, EDIT (16 bit ?), copy con filename.txt, edlin

Не, не, не. Я, если чЁ сразу на pwsh > [System.Text.Encoding]::Convert(

Всего записей: 3524 | Зарегистр. 16-08-2012 | Отправлено: 20:06 18-02-2021
boss911



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

Всего записей: 3715 | Зарегистр. 29-01-2005 | Отправлено: 01:13 19-02-2021 | Исправлено: boss911, 02:12 19-02-2021
ewild

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

Код:
 
set a=a1 a2 a3 a4
set b=b1 b2 b3 b4
for %%i in (%a%) do (
for %%j in (%b%) do (
echo %%i %%j
))

Результатом есть полный перебор комбинаций %i и %j из наборов %a и %b, т.е. всего 16 от a1 и b1 до  a4 и b4?
 
Как сделать, чтобы переменные %i и %j комбинировались из наборов только последовательно попарно (пара первых значений, пара вторых и т.д.), то есть чтобы в итоге получить четыре их комбинации: a1 и b1, a2 и b2, a3 и b3, a4 и b4?

Всего записей: 1198 | Зарегистр. 13-08-2005 | Отправлено: 22:09 21-02-2021
Inoz2000



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

Код:

set a=a1 a2 a3 a4
set b=b1 b2 b3 b4
SET/A t=1
:TokenPlus
SET P=
for /f "tokens=%t%" %%i in ("%a%") do (
for /f "tokens=%t%" %%j in ("%b%") do (
SET P=%%i %%j
))
if not "%P%"=="" echo %P%&SET/A t+=1&goto :TokenPlus

Всего записей: 4963 | Зарегистр. 23-04-2009 | Отправлено: 22:48 21-02-2021
ewild

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

Всего записей: 1198 | Зарегистр. 13-08-2005 | Отправлено: 23:47 21-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
A27
Цитата:
Запускать можно от любой учётной записи имеющей права администратора, например под той же, под которой работает 1C сервер. А от последнего пользователя требуется только факт его присутствия с последующим выходом, т.е. важно лишь событие, т.к. последний пользователь будет всегда разный. Информация о последнем пользователе должна приходить от 1C или её нужно получать от ОС.
Как это сделать? Заметил, что не всегда выполняется bat-файл. Даже в 1С прописал момент запуска bat-файла в журнал регистрации. Запись в ЖР есть, результата выполнения bat-файла - нет. Результат (даже отрицательный) пишется лог-файл. А в данном случае лог-файл пустой, будь то bat-файл вообще не запускался!?

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 07:52 23-02-2021 | Исправлено: M_Volkov, 08:14 23-02-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
M_Volkov
Напишите в начале bat-файла

Код:
whoami >file1.log

Всего записей: 680 | Зарегистр. 12-09-2017 | Отправлено: 08:06 23-02-2021 | Исправлено: Fenrizz, 08:08 23-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Извиняюсь за тупость, что это значит? Вместо file1.log свой писать?

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 08:20 23-02-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
M_Volkov
Команда whoami выведет учтную запись пользователя, под которым запущен скрипт. Потом в файле посмотрите.  
https://ab57.ru/cmdlist/whoami.html
 

Цитата:
Вместо file1.log свой писать?

Можно свой, тогда c двумя стрелками >>
whoami >>file.log

Всего записей: 680 | Зарегистр. 12-09-2017 | Отправлено: 08:27 23-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Есть в bat-файле команда set "LogName=%~dp0AAAAkit.log", значить 1-й строкой написать:
Код:
whoami >>%~dp0AAAAkit.log

Добавлено:
Добавил, запустил копию 1С, в лог-файле написалась моя админская учетная запись. Посмотрю, что напишет при завершении рабочей базы...
На вкладке Безопасность у Все стоит галочка Чтение и выполнение. Что еще проверить?

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 08:34 23-02-2021 | Исправлено: M_Volkov, 09:55 23-02-2021
Fenrizz



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

Цитата:
Есть в bat-файле команда set "LogName=%~dp0AAAAkit.log", значить 1-й строкой написать:

Код:
whoami >>%~dp0AAAAkit.log  

Да
 

Цитата:
Добавил, запустил копию 1С, в лог-файле написалась моя админская учетная запись. Посмотрю, что напишет при завершении рабочей базы...  На вкладке Безопасность у Все стоит галочка Чтение и выполнение. Что еще проверить?

Это лучше в теме по 1С спросить, я в ней не разбираюсь.
Из общих соображений можно добавить после каждого шага в bat-файле

Код:
echo Step xxx done >>%~dp0AAAAkit.log  

чтобы понять, на каком шаге валится.

Всего записей: 680 | Зарегистр. 12-09-2017 | Отправлено: 12:06 23-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Цитата:
лучше в теме по 1С спросить... Даже в 1С прописал момент запуска bat-файла в журнал регистрации.
В ЖР обнаружил запись повторного запуска bat-файла через 2 с. (хотя этого быть не должно) Это могло отменить выполнение bat-файла? В нем есть пауза 2 мин. перед выполнением основой команды.

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 17:47 23-02-2021 | Исправлено: M_Volkov, 18:59 23-02-2021
Xant1k



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для чего добавляют аргумент %1 или "%1" или %U? Например так:
HKEY_CLASSES_ROOT\ChromeHTML\shell\open\commandreg --disk-cache-dir=r:\Temp -- "%1"
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-dir=r:\Temp --disk-cache-size=2147483648 %1
 
Это что-то вроде возврата первого параметра? Не пойму как это работает и для чего

Всего записей: 2918 | Зарегистр. 20-02-2009 | Отправлено: 08:25 24-02-2021 | Исправлено: Xant1k, 08:26 24-02-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xant1k
https://ss64.com/nt/syntax-args.html

Всего записей: 680 | Зарегистр. 12-09-2017 | Отправлено: 08:31 24-02-2021
Retro222

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите.
Вот есть множество консольных программ. Они работают с файлами.
Но кириллические символы отображаются кракозябрами.
Как сделать так, чтобы нормально пути и имена отображались?

Всего записей: 260 | Зарегистр. 21-09-2018 | Отправлено: 03:28 02-03-2021
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Retro222, как то так :
Код:
 
chcp 1251
dir /b /s /a:-d "E:\" >"list.txt"  
 
tree E:\ /a /f > list2.txt  
Кодировку указать , выделил как это сделать.

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 08:16 02-03-2021 | Исправлено: MihailM, 08:20 02-03-2021
Retro222

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM, это пакетный файл?
Меня интересует, как сделать это в интерактивном режиме?
 
Т.е., я в любой папке запускаю CMD, ввожу одну команду, и вижу нормальные символы.

Всего записей: 260 | Зарегистр. 21-09-2018 | Отправлено: 08:55 02-03-2021
bytie

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Retro222
Нет таких универсальных команд. Условно, программа выводит в терминал некую последовательность символов. Если программа выдаёт UTF-8 и программа терминала понимает, что это UTF-8 — будет читаемый текст. Если программа выдаёт последовательность байт в кодировке cp1251, а терминал этого не знает — будет непонятно что.
 
Пробуйте набирать в строке chcp 65001, chcp 1251 и прочее и смотрите на результаты вывода программ.

Всего записей: 295 | Зарегистр. 18-08-2005 | Отправлено: 09:13 02-03-2021
MihailM



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

Цитата:
это пакетный файл?  
да , тут мне надо было , чтоб сохранять в файл именно в win-кодировке.  
Если вы имеете ввиду режим просмотра консоли , то можно побаловаться здесь :  
1. http://prntscr.com/10b2svx  
2. http://prntscr.com/10b2tjp  
Но вариант немного гемморный , и вроде под каждую команду надо заново менять настройки. Не помню , давно это было.
А так да , как написал bytie, в какой кодировке заложен вывод текста в программе, в той и будет вывод.. Как то так..

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 09:34 02-03-2021
clio77



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть что то лаконичное для переименования группы файлов, чтобы год "подвинуть вперед". ))
группа
File_Name_1_3_2011.pdf
File_Name_4_11_2012.pdf
File_Name_21_12_2016.pdf
 
в  
группа
File_Name_2011_1_3.pdf
File_Name_2012_4_11.pdf
File_Name_2016_21_12.pdf

----------
Случайные открытия делают только подготовленные умы©. /Блез Паскаль / dd if=/dev/world of=/dev/brain

Всего записей: 2441 | Зарегистр. 27-10-2003 | Отправлено: 21:25 02-03-2021 | Исправлено: clio77, 21:25 02-03-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

Компьютерный форум 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