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

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

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

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

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

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

Цитата:
ничего визуально не происходит.

Закомментируйте или удалите {@echo OFF }.
Ещё можно перед {goto :EOF} добавить {pause}
Чуть поправил код (заменил {>} на {>>}, иначе в файле оставалась только последняя строка).
 
Логика работы следующая: создаём пустой файл под результат, находим все filtered.txt, обрабатываем каждый построчно: каждую строку проверяем на наличие в файле результата, и если её там ещё нет - добавляем её туда (т.е. дубли тупо не возникают).


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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:31 05-08-2022 | Исправлено: BorlandIMHO, 20:36 05-08-2022
Pasha_ZZZ



Запрет на пост
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Simoid
Если Вин 10 - то все гораздо проще можно. В 10 для команды sort добавили ключ /unique

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 04:15 06-08-2022
Simoid



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Pasha_ZZZ
 
Спасибо почитаю. Там win.serv.2022, что думаю есть аналогичным десятке по функционалу.
 
==
 
Что-то предложенный BorlandIMHO скрипт сильно долго работает при объеме больших log-файлов. Решил отказаться от него в пользу более быстрых многопоточных программ.
 
Поэтому задача немного изменилась, прошу оптимизировать следующий bat-файл и помочь с недописанным функционалом:
 

Код:
 
@echo off
set "src=C:\Logs\"
if not exist "%src%" echo Error. Not exist "%src%"&pause&exit
for /f "tokens=3*" %%a in ('where /r "%src%" /f /t * ^|findstr /brc:"^ *0 "') do del /f/q/a %%b&echo file %%b removed.
for /r "%src%" %%i in (.) do dir /b "%%~i" | find /v "">nul || rd /s /q "%%~i"
del /f /s /q all.txt
pause
 
 
 
По моей задумке он делает следующее:
1. Оббегает все подпапки в папке Logs и удаляет файлы с нулевым размером.
2. Удаляет пустые подпапки
3. Удаляет файлы all.txt
===
4. В оставшихся подпапках после проделанных манипуляций остаются текстовые файлы Filtered.txt, которые нужно построчно объединить. Что нужно доделать.
 
Теоретически задачу можно упростить соединив содержимое одинаковых по имени файлов Filtered.txt с ненулевым размером без удаления пустых файлов и подпапок. Проверять на уникальность строк не нужно. Но я пока не знаю, как это сделать.

Всего записей: 1011 | Зарегистр. 23-07-2005 | Отправлено: 14:01 07-08-2022 | Исправлено: Simoid, 14:18 07-08-2022
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем приветы. Мучаю nconvert через конт.меню jpg-файлов.
Все хорошо, но если выбрать несколько файлов, то для каждого из них будет открыт свой nconvert. По идеи, нужно все это передать списком через параметр -l но так он вообще отказывается работать
Есть идеи?
 

Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\nc_exif]
"MUIVerb"="Use orientation EXIF tag"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\nc_exif\command]
@="cmd /k title JPEG lossless transformations & nconvert -jpegtrans exif -overwrite -keepfiledate \"%1\""

Всего записей: 1159 | Зарегистр. 23-01-2006 | Отправлено: 15:58 07-08-2022 | Исправлено: DeZz, 15:59 07-08-2022
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeZz
Для этого тебе нужно создавать файл-список.
Проще всего - повторить мой опыт и прикрутить это к Total Commander, хоть в меню "Запуск", хоть на батонбар. У меня это в менюхе подобное прописано вот так - Подробнее... У ТС свой параметр %L для создания файла-списка и передачи его в команду. Если есть вопросы, спрашивай в обсуждении настройки Total Commander.
 
А что не так в отдельных вызовах NConvert?

Всего записей: 16544 | Зарегистр. 04-11-2010 | Отправлено: 16:47 07-08-2022 | Исправлено: insorg, 16:48 07-08-2022
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
та для ТС там все ясно, задача как раз обойтись без него
 

Цитата:
А что не так в отдельных вызовах NConvert?

быстродействие (если файлов сотни)

Всего записей: 1159 | Зарегистр. 23-01-2006 | Отправлено: 17:36 07-08-2022
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeZz
Если файлов сотни, тотал будет лучше, чем дёргать ПКМ. Оно не очень хорошо это переваривает в таком количестве само по себе...

Всего записей: 16544 | Зарегистр. 04-11-2010 | Отправлено: 18:06 07-08-2022
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
ну да, я просто думал может есть способ как-то обойти через clip \ for или еще как-то

Всего записей: 1159 | Зарегистр. 23-01-2006 | Отправлено: 19:08 07-08-2022
BorlandIMHO

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

Цитата:
соединив содержимое одинаковых по имени файлов Filtered.txt с ненулевым размером без удаления пустых файлов и подпапок. Проверять на уникальность строк не нужно

Ну, если уникальность не нужна - то решение фактически однострочное.

Код:
@echo OFF
pushd "c:\Folder"||exit
copy /y nul "filtered_all.txt"
for /f "tokens=*" %%A in ('dir /B /S filtered.txt') do copy "filtered_all.txt"+"%%~fA"
popd
goto :EOF


Цитата:
предложенный BorlandIMHO скрипт сильно долго работает при объеме больших log-файлов.

Так ничего удивительного. Построчно, каждая строка проверяется на дубли...

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:41 07-08-2022
Simoid



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
BorlandIMHO
 
Еще раз благодарю. Всё работает идеально.
 
Мою задачу дальше можно не обрабатывать...

Всего записей: 1011 | Зарегистр. 23-07-2005 | Отправлено: 22:55 07-08-2022
Capushon

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

Цитата:
Мучаю nconvert через конт.меню jpg-файлов.
Все хорошо, но если выбрать несколько файлов, то для каждого из них будет открыт свой nconvert. По идеи, нужно все это передать списком через параметр -l но так он вообще отказывается работать  
Есть идеи?

 
MultiSelectModel
https://github.com/matf-pp/2019_Windows_copy/issues/1
 
Ну и снять ограничение на список 15 (по вкусу)
https://www.tenforums.com/tutorials/94513-fix-context-menu-items-missing-when-more-than-15-selected-windows.html
Код:
Reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer" /v "MultipleInvokePromptMinimum" /t REG_DWORD /d "22" /f

Всего записей: 4317 | Зарегистр. 18-07-2006 | Отправлено: 19:58 09-08-2022 | Исправлено: Capushon, 20:01 09-08-2022
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, пожалуйста подскажите, можно ли консольно (в пакетном сценарии), используя утилиту "WMIC", изменить "Полное имя" и "Описание" учётной записи. Если нет, то каким образом это можно реализовать? Как я понимаю, команда "Net User" не позволяет это сделать. Заранее спасибо за помощь!

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 07:16 14-08-2022 | Исправлено: Artem_Butenko, 07:16 14-08-2022
BorlandIMHO

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

Цитата:
 используя утилиту "WMIC", изменить "Полное имя" и "Описание" учётной записи.

"Полное имя":

Код:
 
wmic useraccount where name='guest' set fullname='Гость обычный'
 

"Описание...", по идее, должно меняться так:

Код:
 
wmic useraccount where name='guest' set Description='Нечего тут описывать'
 

Но почему-то не работает (команда "успешно выполняется", но описание не меняется)...

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 08:11 14-08-2022
Mavrikii

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

Цитата:
Как я понимаю, команда "Net User" не позволяет это сделать.

почему?
net user имя /comment:"описание"
net user имя /fullname:"полное имя"

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 08:12 14-08-2022
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
Также заметил, что не работает. ОС Windows 10 Pro 21H2 (x64).
Очень странно, что параметр "Срок действия пароля не ограничен", можно задействовать только используя "WMIC":
WMic UserAccount Where "Name='%UserName_1%'" Set PasswordExpires=False
WMic UserAccount where "Name='%UserName_1%'" Set PasswordChangeable=False
 
Mavrikii
Работает. Что-то меня зациклило на "WMIC".
 
Спасибо Вам ребята за помощь!

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 08:46 14-08-2022
Kspeh

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как погасить экран, не выходя из аккаунта? Вот эта команда
powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::PostMessage(-1,0x0112,0xF170,2)
выходит из аккаунта и экран тут же почему-то зажигается.

Всего записей: 350 | Зарегистр. 17-11-2015 | Отправлено: 16:12 15-08-2022
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
powershell.exe -Command "(Add-Type '[DllImport(\"user32.dll\")]public static extern int SendMessage(int hWnd,int hMsg,int wParam,int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)"
у меня версия 4.0 на win 8.1 такое гасит, но есть отличия, обратите внимание.

Всего записей: 4904 | Зарегистр. 23-04-2009 | Отправлено: 20:36 15-08-2022
BorlandIMHO

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

Цитата:
версия 4.0 на win 8.1

5.1 на 10 21H2 - тоже работает.

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:52 15-08-2022
Kspeh

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000 спасибо, но у меня так же, как и раньше. Экран гасится, но тут же зажигается и появляется экран входа в систему. Мне бы так, чтобы не выкидывало на экран блокировки, а просто гасило монитор. Windows 10 корпоративная без прав.

Всего записей: 350 | Зарегистр. 17-11-2015 | Отправлено: 07:45 16-08-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kspeh
не знаю на десятке будет работать или нет
MonitorOff.zip
на семерке и хп работает. ну можно исправить если не будет.
на восьмерке выключает но не включается, возможно из за hdmi подключения монитора.
 
у тебя команда неправильная. SendMessage(-1

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 06:07 19-08-2022 | Исправлено: bomzz, 06:51 19-08-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

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