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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скачал. И хз как всем этим пользоваться.  
Не вижу я там никаких "procprofiler64, awk".
 
Добавлено:
gawk "BEGIN{i=0} NR==FNR{a[$1]++; next} {i++;if ($1 in a) {print FILENAME,i,$1;}}" 1K1.txt 2.txt>>0.txt
Вроде ожило. Только я не понял че с ProcProfile.c делать.
А так да.. Буквально за 2 секунды и все 1К1-1К17 мне 2.txt проверило.
Ща че нить побольше поставлю на проверку..)))

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 20:59 01-10-2021 | Исправлено: zh76internetru, 21:18 01-10-2021
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zh76internetru
ProcProfile-1.5.1.7z\ProcProfile64.exe  
msvc_cl_64_rel_c.zip\msvc_cl_64_rel_c\gawk.exe или mingw64_gcc_64_rel_c.zip\mingw64_gcc_64_rel_c\gawk.exe

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 21:26 01-10-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Жесть.. Цельный шаблон 1К 1 млн строк 45 метров + проверяемый 520 метров (13,7 млн строк) за 15 сек прогнало и контрольные строки нашло..)))
Берем на вооружение, посмотрю как несколько процессов враз работать паралельно будут..)))
 

Цитата:
ProcProfile-1.5.1.7z\ProcProfile64.exe  

А где оно? Не вижу нигде..(((
gawk.exe только, вот его проверял. )))

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 21:48 01-10-2021 | Исправлено: zh76internetru, 21:56 01-10-2021
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zh76internetru
Там же где procprofile32.exe брали. https://encode.su/threads/1838-Command-Line-Process-Profiling-Tool/page2 => https://encode.su/attachment.php?attachmentid=2657&d=1388416311
ProcProfile.c - это исходники. procprofile32.exe, procprofile64.exe - версии собранные под разную разрядность.
Повторюсь - это профайлер/бенчмарк. Для работы не нужен.

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 22:02 01-10-2021 | Исправлено: Alex_Piggy, 22:04 01-10-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Короче вот это: mingw64_gcc_64_rel_c
Из него вот это:
 
gawk "BEGIN{i=0} NR==FNR{a[$1]++; next} {i++;if ($1 in a) {print FILENAME,i,$1;}}" 1K.txt 2.txt>>0.txt
 
И готово, так? )))
 
Спасибо большое.  
Зы. А на CUDA ниче подобного еще нет? ))))
Век живи век учись. ))) Все равно еще умней после нас будут )))
Кстати в 2025 типа видюхи, но на квантовом проце обещают в продажу пустить. )))
 
Добавлено:

Цитата:
посмотрю как несколько процессов враз работать паралельно будут..)))

Сглазил. 4 процесса враз, 4 шаблона, каждый проверяя свой файл по 500 метров  - ни одной контрольной строки в проверяемых не нашли.
Рипрег все четко нашел.  

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 22:13 01-10-2021 | Исправлено: zh76internetru, 22:56 01-10-2021
zh76internetru

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

Цитата:
2.txt:45594 1K.txt:74040 WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN

Он у меня и в один поток перестал искать. Думал сломалось чего, оказалось проще...
В общем: в шаблоне чистые строки с содержимым например WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN
Если в искомом тоже чистая строка - находит без проблем. Но если в ней еще что то есть - не видит.  
Рипрег видит. Он всю строку с любым мусором выводит найдя нужное.
Этот мусор может быть таким:  
ячейка: WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN
или таким
"ячейка:WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN" (то есть без пробела и в кавычках).
Но рипрегом я ищу 3 мин, а новой штукой всего 15 сек.
 

Цитата:
UPD - Уточню насчет "something similar" - это Вы ищете полное совпадение строк, частичное или по регекспу?

Получается мне нужен частичный поиск? А че такое регекспу?
 
Добавлено:
Хм. Запустил 4 процесса. Нашел только чистые строки, но нашел.
Но по времени обработка 4-ех файлов по 500 мб заняла 170 сек.  
То есть 3 мин. Рипрег также в 4 потока тратит 5.5-6 мин. Но находит все.
 
 

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 07:46 02-10-2021 | Исправлено: zh76internetru, 07:48 02-10-2021
Alex_Piggy

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

Цитата:
Но по времени обработка 4-ех файлов по 500 мб заняла 170 сек.


Цитата:
 Цельный шаблон 1К 1 млн строк 45 метров + проверяемый 520 метров (13,7 млн строк) за 15 сек

Какая из цитат верная?

Цитата:
А че такое регекспу?

Регулярные выражения.
 
Тогда попробуйте так:
awk "BEGIN{i=0} NR==FNR{a[$0]++; next} {i++; if (match($0,/[A-Za-z0-9]{10,}/,b)) if (b[0] in a) print FILENAME,i,$1; }" 1K.txt 2.txt
В строках из 2.txt будет находить фрагмент, состоящий из цифр и латиницы длиной не менее 10 символов и проверять его соответствие полным строкам в 1K.txt. У меня это 2.7 с против ~1.7 ранее.
 

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 08:46 02-10-2021 | Исправлено: Alex_Piggy, 08:50 02-10-2021
zh76internetru

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

Цитата:
Какая из цитат верная?

Если в один поток и строка в проверяемом без мусора находит быстро.
Если параллельно то дольше.. Но.. Это если прямо с жесткого диска запускать.
А если сначала в RAM загнать, то рипрег тратит примерно 130 сек на 4 враз запущенных проверки, а gawk максимум 15 сек...)))
Только что испытал.
Щас попробую новый код )))
 
Добавлено:
4 процесса враз заняло 49 сек.
Одиночным 43. Это в RAM.
Но нашло только чистые строки (((

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 08:59 02-10-2021 | Исправлено: zh76internetru, 09:00 02-10-2021
Alex_Piggy

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

Цитата:
Это если прямо с жесткого диска запускать.

Понятно... Другая логика дисковых операций... Много мелких чтений, которые мешают друг другу. Поэтому в параллель медленнее чем последовательно.  
 

Цитата:
Но нашло только чистые строки (((

Не должно было... Можно точные примеры строк, которые НЕ поймались - файлом.
В 1K.txt длина шаблонов - от 30 до 32. Можно указать строже соответствие длины в регекспе:
awk "BEGIN{i=0} NR==FNR{a[$0]++; next} {i++; if (match($0,/[A-Za-z0-9]{30,32}/,b)) if (b[0] in a) print FILENAME,i,$1; }" 1K.txt 2.txt
Для запаралелливания можно попробовать через stdin (чтобы проверяемый файл не читать построчно с диска)
type 2.txt | awk "BEGIN{i=0} NR==FNR{a[$0]++; next} {i++; if (match($0,/[A-Za-z0-9]{30,32}/,b)) if (b[0] in a) print FILENAME,i,b[0]; }" 1K.txt -

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 09:17 02-10-2021
zh76internetru

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

Цитата:
Не должно было... Можно точные примеры строк, которые НЕ поймались - файлом.

Этот мусор может быть таким:  
cell: WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN
или таким
"cell:WnKgKzJniQp1qkL1E1tgwyJvUUTNBXVN" (то есть без пробела и в кавычках).
Вот такие строки не ловит.
 
 
Добавлено:

Цитата:
awk "BEGIN{i=0} NR==FNR{a[$0]++; next} {i++; if (match($0,/[A-Za-z0-9]{30,32}/,b)) if (b[0] in a) print FILENAME,i,$1; }" 1K.txt 2.txt

Теперь даже чистые не нашло.  
 
Добавлено:
Кстати gawk или просто awk? У меня gawk проверяет.

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 09:20 02-10-2021 | Исправлено: zh76internetru, 09:26 02-10-2021
Alex_Piggy

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

Цитата:
Теперь даже чистые не нашло.  

Ладно... А так (бъет строки по не-латинице и не-цифрам и проверяет каждое поле)? Правда уже 3 с вместо 2...
awk -F "[^a-zA-Z0-9]+" "NR==FNR{for (i=1;i<=NF;i++) if ($i) a[$i]++; next} {for (i=1;i<=NF;i++) if ($i && $i in a) print FILENAME,$i;}" 1K.txt 2.txt
или (для rush или что там)
type 2.txt | awk -F "[^a-zA-Z0-9]+" "NR==FNR{for (i=1;i<=NF;i++) if ($i) a[$i]=1; next} {for (i=1;i<=NF;i++) if ($i && $i in a) print FILENAME,$i;}" 1K.txt - > 2.out
UPD: Для этого скрипта не имеет значения - awk или gawk.

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 14:07 02-10-2021 | Исправлено: Alex_Piggy, 14:11 02-10-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gawk -F "[^a-zA-Z0-9]+" "NR==FNR{for (i=1;i<=NF;i++) if ($i) a[$i]++; next} {for (i=1;i<=NF;i++) if ($i && $i in a) print FILENAME,$i;}" 1K.txt 2.txt
 
Одиночный процесс в RAM - 46 сек, нашло все среди всякого мусора и даже без пробелов)))
Тот же код в 4 процессах - 57 сек, тоже нашло все )))
Оперативки жрет 0.3 Гига...)))
 
Где то у меня шаблончик 1К то был весом 2.6 гига то? ))) А то какой то блохой всего 36 метров шмаляю )))
В оперативку не влезет... 4 по 500 уже 2 гига RAM да еще если + 2.6... А у меня всего 8, 3.5 из них винда оттяпала )))
 
type 2.txt | gawk -F "[^a-zA-Z0-9]+" "NR==FNR{for (i=1;i<=NF;i++) if ($i) a[$i]=1; next} {for (i=1;i<=NF;i++) if ($i && $i in a) print FILENAME,$i;}" 1K.txt - > 2.out
 
"gawk" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 
 
 
 
Добавлено:
Alex_Piggy
Еще раз огромное спасибо. в 3.5 раза скорость увеличилась по сравнению с рипгрегом.
Пошел винду перетыкать, а то стока мусора с инета натаскал. )))  
Мож еще чуток шустрее станет )))

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 14:55 02-10-2021 | Исправлено: zh76internetru, 15:24 02-10-2021
Alex_Piggy

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

Цитата:
Где то у меня шаблончик 1К то был весом 2.6 гига то? )))

Пожалуйста внимательнее/осторожнее.  Я писал, что у меня в x32 системе - "(память = 5x размер файла шаблона)". И еще - на количество процессов. То есть на ~5 свободных гигах без возможных проблем можно запускать максимум 1Gb шаблон в один поток... Как себя awk ведет при x64 - не знаю. Может 10x?
PS. Проверил  - "type" тоже по 512 байт читает...

Всего записей: 1906 | Зарегистр. 07-08-2002 | Отправлено: 20:41 02-10-2021
Susie7



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажите ли батник на убийство - witcher3.exe?
Чтобы лежал рядом с екзешником и к нему был ярлык на рабочем столу.
А то вешает систему, что мышка глючит и пр.
"witcher3.exe - kill naf!" - как-то так?

----------
Принцессы бывают не только в сказках

Всего записей: 1068 | Зарегистр. 11-07-2018 | Отправлено: 14:58 08-10-2021 | Исправлено: Susie7, 15:00 08-10-2021
KiloSub



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

Код:
tasklist | find "witcher3.exe" && (taskkill /f /im witcher3.exe)

Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 15:04 08-10-2021
cl85

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста.
Есть батники и меню было разных цветов при помощи такого кода:

Код:
call :color a
call :echo "Пример."
 
:color
set "c=%1"
exit /b
 
:echo
for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (
pushd "%~dp0"
<nul>"%~1_" set /p="%%i%%i  "
findstr /a:%c% . "%~1_*"
if "%~2" neq "/" echo.
del "%~1_"
popd
set "c=")
exit /b

В Windows 10 всё было красиво, а в Windows 11 там где:

Код:
call :color a
call :echo

отображает крякобразы, цветов соответственно нет, но сам батник работает.
Как можно это исправить?
Спасибо.

Всего записей: 411 | Зарегистр. 26-10-2005 | Отправлено: 23:17 12-10-2021
westlife



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

Цитата:
отображает крякобразы

Поглядел в w11. Они изменили управление кодировками у findstr (в итоге сломали).

Код:
chcp 866 >nul
findstr /?

W10: выводит в 866 (норм)
W11: выводит в 1251 (каракули)
 

Код:
chcp 1251 >nul
findstr /?

W10: выводит в 866 (каракули)
W11: выводит в 1251 (норм)
 
в W10 и ранее можно было перед вызовом консольных подобных утилит менять кодировку под их дефолтную, а затем обратно под кодировку скрипта (костыль), а теперь в w11 это не работает, по крайней мере для findstr. надо разбираться как теперь поступать, проверил разные варианты для findstr и ни чего не вышло, она меняет все время на разные кодировки, в зависимости что ей подставляют, технологии будущего.

Всего записей: 1474 | Зарегистр. 12-12-2006 | Отправлено: 17:49 13-10-2021
Susie7



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

Цитата:
tasklist | find "witcher3.exe" && (taskkill /f /im witcher3.exe)

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


----------
Принцессы бывают не только в сказках

Всего записей: 1068 | Зарегистр. 11-07-2018 | Отправлено: 19:41 13-10-2021
generator324

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

Цитата:
Опять меня обманули...  

Женщин всегда обманывают

Всего записей: 1102 | Зарегистр. 11-01-2019 | Отправлено: 21:15 13-10-2021
Silver Raven

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, а cmd-шником можно узнать текущее разрешение экрана (если их несколько, то только того, который установлен как основной). Мне нужно эти данные воткнуть в конфиг.

Всего записей: 149 | Зарегистр. 12-10-2012 | Отправлено: 22:07 15-10-2021 | Исправлено: Silver Raven, 22:08 15-10-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