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

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

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

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.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 37512 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
anynamer



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

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



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

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

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

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

 

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

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

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

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



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

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

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



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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru