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

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

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

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

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

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

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

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


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

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



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

Всего записей: 10663 | Зарегистр. 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 с ненулевым размером без удаления пустых файлов и подпапок. Проверять на уникальность строк не нужно. Но я пока не знаю, как это сделать.

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

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



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

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



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

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

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

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



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

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



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

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

Advanced 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

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



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

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

Advanced 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

Всего записей: 1679 | Зарегистр. 18-07-2006 | Отправлено: 19:58 09-08-2022 | Исправлено: Capushon, 20:01 09-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

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