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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Да, спасибо! Так и сделал.
 
Но в строках где нет в начале года появился в конце строки пробел!
Как это пофиксить?
Можно ли сохранить структуру содержания txt файла - оставить там пустые строки где они были, потому что скрипт убрал их все?

Всего записей: 2307 | Зарегистр. 17-05-2010 | Отправлено: 17:43 23-09-2021 | Исправлено: anynamer, 19:17 23-09-2021
Fenrizz



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

Цитата:
Но в строках где нет в начале года появился в конце строки пробел!  

Проблел перед >> в двух местах убрали? Здесь тоже?  

Код:
if errorlevel 1 echo %%A>>filename2.txt  

 

Цитата:
Можно ли сохранить структуру содержания txt файла - оставить там пустые строки где они были, потому что скрипт убрал их все?

Думаю, что нет цикл for пропускает пустые строки.

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 21:23 23-09-2021
GCRaistlin



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

Цитата:
Можно ли сохранить структуру содержания txt файла - оставить там пустые строки где они были

Можно:

Код:
 
@echo off
 
del /Q filename2.txt
for /f "tokens=1* delims=:" %%@ in ('findstr /n ".*" "filename.txt"') do (
echo "%%A" |>nul FINDSTR /R /C:""""[0-9][0-9][0-9][0-9] - .*""""
if NOT errorlevel 1 (for /f "tokens=1,* delims=- " %%C in ("%%A") do echo %%D [%%C]>>filename2.txt)
if errorlevel 1 echo %%A>>filename2.txt
)  
 

Ограничение: строки файла не должны начинаться с двоеточего. По мотивам http://www.elisanet.fi/tsalmi/info/tscmd064.html

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 21:44 23-09-2021
anynamer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
) Там не убрал пробел. Спасибо!
 
GCRaistlin
Этот способ делает смешное - вместо пустых строк ставит
ECHO is off.
ECHO is off.

Всего записей: 2307 | Зарегистр. 17-05-2010 | Отправлено: 22:03 23-09-2021
GCRaistlin



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

Код:
 
if errorlevel 1 echo %%A>>filename2.txt
 

напишите

Код:
 
if errorlevel 1 echo/%%A>>filename2.txt
 


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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 22:08 23-09-2021
Fenrizz



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

Цитата:
Этот способ делает смешное - вместо пустых строк ставит
ECHO is off.
ECHO is off.  

Да, надо немного допилить

Код:
if errorlevel 1 (if NOT [%%A]==[] (echo %%A>>filename2.txt
) else (echo.>>filename2.txt)  
)
 

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 22:09 23-09-2021
anynamer



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

Всего записей: 2307 | Зарегистр. 17-05-2010 | Отправлено: 22:30 23-09-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CMD для CUDA - есть что-нибудь подобное? Мне батник на видеокарте бы запустить вместо цпу.
Или ничего такого пока не изобрели?

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 08:31 24-09-2021
BorlandIMHO

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

Цитата:
CMD для CUDA - есть что-нибудь подобное?

Даже близко нет.
 
Нет никаких ограничений на запуск из cmd любых консольных (и не только) приложений, в том числе работающих на GPU, но сам по себе cmd.exe и его встроенные команды (типа for) работают именно и только на CPU.

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

Всего записей: 2655 | Зарегистр. 12-10-2006 | Отправлено: 10:01 24-09-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Жаль. Пора бы уже сочинить.  
CUDA давно шагает по стране, один только майнинг чего уже стоит )))
Моему батнику огромные базы сверять приходится, вычисляя одинаковость.
На цпу долго выходит.

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 10:22 25-09-2021
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zh76internetru
Для таких вещей Hadoop существует

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 10:36 25-09-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Нееее... Это что то большое и страшное.
Мне бы для простого батничка... Для по домашнему уютного и скромного использования )))

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 12:21 25-09-2021
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zh76internetru
Видеокарты умеют быстро считать, потому что одновременно обрабатывают охулиард потоков. А батник однопоточный (если особо не извращаться).
Да и работа встроенных команд не подразумевает никакого "сверяния баз", значит вы запускаете внешние программы. Пусть они эти и занимаются.

Всего записей: 12815 | Зарегистр. 11-03-2002 | Отправлено: 12:28 25-09-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я этих батников паралельно на 1 цпу с несколькими ядрами штук по 20 враз запускаю до 100% нагрузки ))) Но обработка по времени 1 процессом что в одиночку что в такой куче примерно одинаковое время занимает. Ну может % на 20 чуток затягивается.  
А приложение - скромный одиночный экзешник в несколько мегабайт размноженный по 20 папкам с 20 батниками в каждом.
Ну и базы по частям так же накрошены )))

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 12:34 25-09-2021 | Исправлено: zh76internetru, 12:46 25-09-2021
BorlandIMHO

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

Цитата:
батнику огромные базы сверять приходится, вычисляя одинаковость

Плохо себе представляю "процесс сверки огромных баз" на уровне cmd.
Если, к примеру, речь о тупом построчном сравнении текстовых файлов или тупом побитном сравнении двоичных файлов - никакая CUDA ничем не поможет.
Собственно вычислительные возможности cmd ограничены операциями сложения/вычитания/умножения/деления с целыми числами в диапазоне ±2^31-1 (±2 147 483 647), где CUDA тоже ни к чему.

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

Всего записей: 2655 | Зарегистр. 12-10-2006 | Отправлено: 12:43 25-09-2021
zh76internetru

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

Цитата:
речь о тупом построчном сравнении текстовых файлов

Да. Вот такое. Между 2 файлами занимает 4 сек. В куче до 5 сек затягивается.
Нужную задачу выполняют, но хотелось бы раз в 150 пошустрее.
Иначе больше 20 моих процессов цпу не справляется - время обработки резко увеличивается при запуске 21 процесса  )))  

Всего записей: 29 | Зарегистр. 24-09-2021 | Отправлено: 12:50 25-09-2021
BorlandIMHO

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

Цитата:
приложение - скромный одиночный экзешник в несколько мегабайт

Вот его и надо переписывать под CUDA, если он выполняет {хорошо распараллеливаемые} массированные вычисления над относительно небольшими данными. Если над большими данными - то он будет больше простаивать в ожидании чтения/записи данных, нежели непосредственно вычислять. Если вычисления в один поток - то CUDA будет считать медленнее, чем CPU.
 
Добавлено:

Цитата:
Иначе больше 20 моих процессов цпу не справляется - время обработки резко увеличивается при запуске 21 процесса  )))

Тормозом при операциях сравнения файлов является не дурь CPU, а скорость чтения файлов с винчестера и пропускная способность шины памяти...

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

Всего записей: 2655 | Зарегистр. 12-10-2006 | Отправлено: 13:06 25-09-2021
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zh76internetru
BorlandIMHO
Простое текстовое сравнение без массивных вычислений упирается обычно в файловые операции, которым никакая куда не поможет.

Всего записей: 12815 | Зарегистр. 11-03-2002 | Отправлено: 13:14 25-09-2021
zh76internetru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если будет интересно, я пользуюсь процессором Ripgrep с каким то хитрым векторным поиском и оперативку почти не ест.
До этого пробовал ugrep по алгоритму какого то там... но он всю оперативку одним процессом забивал и скорость обработки 12 сек была.
Файлы баз (точнее ее куски) пробовались одни и те же.  
З.Ы. Новая база из 41 млн строк подоспела. Это мне до вечера ее проверять шаблоном из 1 млн строк (((

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

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

Цитата:
Новая база из 41 млн строк подоспела. Это мне до вечера ее проверять шаблоном из 1 млн строк (((

Для ускорения обработки: "базу" и "шаблон" скопировать на RAM-диск (например ImDisk). Это исключит, как минимум, влияние скорости HDD.
Результат, если таковой подразумевается, писать туда же, а уже потом копировать на HDD.
Сильно сомневаюсь, что любые другие ухищрения, в т.ч. CUDA, дадут хоть сколько-нибудь лУчший результат в плане ускорения обработки...

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

Всего записей: 2655 | Зарегистр. 12-10-2006 | Отправлено: 13:42 25-09-2021 | Исправлено: BorlandIMHO, 13:43 25-09-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