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

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

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

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
insorg
tasklist | find /I "Chrome.exe" && echo хром запущен
или
tasklist /FO list | FINDSTR /I /X /C:"Имя образа:     Chrome.exe" && echo хром запущен

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 20:55 07-02-2022 | Исправлено: Fenrizz, 09:51 08-02-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
командой call родительский каталог можно передать только сменив родительский каталог?

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 06:08 08-02-2022
insorg



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

Всего записей: 2932 | Зарегистр. 04-11-2010 | Отправлено: 09:38 08-02-2022
Charisma



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посоветуйте батник для удаления подпапок из директории C:\Users\Я\AppData\Local\Microsoft\Windows\INetCache\IE\
Примечание: не программист

Всего записей: 1006 | Зарегистр. 31-07-2004 | Отправлено: 12:16 09-02-2022
BorlandIMHO

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

Цитата:
батник для удаления подпапок из директории C:\Users\Я\AppData\Local\Microsoft\Windows\INetCache\IE\  

В таком виде:
Код:
for /D %%F in (%LOCALAPPDATA%\Microsoft\Windows\INetCache\IE\*) do rd /s /q "%%~F"
удаляет все папки, не имеющие атрибута "скрытый".
 
В таком виде:
Код:
pushd "%LOCALAPPDATA%\Microsoft\Windows\INetCache\IE" && 1>nul 2>&1 rd /s /q . & popd
удаляет всё содержимое папки "C:\Users\Я\AppData\Local\Microsoft\Windows\INetCache\IE\", включая файлы.
 
В таком виде:
Код:
for /F %%F in ('dir /B /A:D "%LOCALAPPDATA%\Microsoft\Windows\INetCache\IE\*"') do rd /s /q "%%~F"
удаляет папки не обращая внимания на "скрытость" и не трогает файлы.
 
Если при какие-либо этом файлы/папки "заняты" (открыты в какой-либо программе) - то их удалить не удастся.
 


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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 12:54 09-02-2022 | Исправлено: BorlandIMHO, 12:56 09-02-2022
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charisma
forfiles /P "C:\Users\Я\AppData\Local\Microsoft\Windows\INetCache\IE" /C "cmd /c if @isdir==TRUE rd /S /Q @path"
 

Цитата:
options:
   /S  : Delete all files and subfolders in addition to the folder itself. Use this to remove an entire folder tree.
   /Q  : Quiet - do not display Y/N confirmation

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 12:57 09-02-2022 | Исправлено: Fenrizz, 13:06 09-02-2022
Charisma



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO, Fenrizz
Спасибо. Буду пробовать.

Всего записей: 1006 | Зарегистр. 31-07-2004 | Отправлено: 13:15 09-02-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
батниками редко. вопрос по кодировке.  
ассемблерjv под виндовс интересовался, делал простые программки, по факту дающие связь между командной строкой и встроенными подпрограммами виндовс - удобняшки, никто не может объяснить почему у программы clip проблема с кодировкой. понадобилась для 1251 65001 и оказалось не работает. врубиться не могу в чем косяк. костыли конвертаторы ничего не дают, подающие поток в иной кодировке на вход. ну делал все по библии микрософтовской вроде
clip.zip

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 15:10 09-02-2022 | Исправлено: bomzz, 15:14 09-02-2022
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
Простыми человеческими словами: что нужно получить и что не получается.
Сильно подозреваю, что у вас проблема "не работают как хочется мои программы", но с этим точно не сюда...

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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 15:37 09-02-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
да эта фигня в шапке лет 10 лежит. я только сейчас заметил что пашет криво.
это точно сюда потому что "мои программы" принимают входящий поток из батника и передают потоки в батники
и внутри они ничего такого не делают чего бы туда микрософт не положил.
это просто "дыра" к одной апи функции виндовс.
вернее не понимает русские буквы что ли. что то не срастается у буфера обмена и потока консоли
 
   
когда делал английский текст был нужен, это 1251 файл через поток сохраняется в блок памяти которые назначается буфером обмена. через type

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 17:47 09-02-2022 | Исправлено: bomzz, 19:50 09-02-2022
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzz
Чего лежит - непонятно...
Что за дыра и где - непонятно...
Кто "не понимает русские буквы что ли" - непонятно...
 
Буферу обмена кодировка "голого" текста как таковая - пофиг. Тупо последовательность байт, что пихнёшь - то и будет.
При вставке из {текстового} буфера - вставляется та самая байтовая последовательность, которая туда скопирована. Как она интерпретируется программой-приёмником - отдельный вопрос. Например, "Блокнот" отобразит текст ISO8859-5 кракозябрами просто потому, что этой кодировки не понимает и не поддерживает.
{да и вообще у "Блокнота" с различными кодировками дружбы нет}.
 
Что и как делают с буфером самопальные поделия из вашего архива - не знаю (и не горю желанием узнать, вообще-то ). Но если в процесе работы с буфером они портят кодировку - значит делают что-то не то, и все вопросы - к автору поделий.
 
P.S. Русский текст в 7 разных кодировках одновременно прекрасно копируется через буфер обмена, если что. И даже "Блокнот" его не портит, хотя и не в состоянии правильно отобразить...

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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 22:03 09-02-2022 | Исправлено: BorlandIMHO, 20:28 11-02-2022
bomzz

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

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 09:31 10-02-2022
BorlandIMHO

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

Цитата:
нашел ответ

Что и требовалось доказать: ошибка в поделии, не имеющая никакого отношения к топику. Или, по-простому - ОФФТОП.

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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 10:43 10-02-2022
Roman_Hayretdinov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть несколько десятков папок с произвольными именами. Задача: найти среди них только те папки, в которых есть подпапки по имени Update и при этом нет других подпапок. Пробовал сам, но получается как-то коряво, длинно и некрасиво... Надеюсь, здесь помогут

Всего записей: 47 | Зарегистр. 19-12-2021 | Отправлено: 21:04 10-02-2022
Fenrizz



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

Код:
forfiles /P "C:\Work\Folder" /C "cmd /c if @isdir==TRUE dir /B /A:D /O:N @path |>nul FINDSTR /V /I /X "^""Update"^"" || dir /B /A:D /O:N @path |>nul FINDSTR /I /X "^""Update"^"" && echo @path"  

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 21:45 10-02-2022 | Исправлено: Fenrizz, 05:22 11-02-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ни фига не в этом дело было, что по ссылке.
надо сменить раскладку клавиатуры потока\окна\консоли.

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 16:23 11-02-2022
BorlandIMHO

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

Цитата:
надо сменить раскладку клавиатуры потока\окна\консоли.

Чего?..
То же самое по-русски, пожалуйста...

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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 19:34 11-02-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
контрал шифт или альт шифт нажать в окне которое переназнает область памяти соответствующее буферу обмена. то есть буфер обмена это как бы скрытое окно блокнота, в которое печатается весь копируемый текст по букве, и если неправильно раскладку включить билебирд получится. в данном случае в консоли батника надо переключить раскладку клавиатуры. и нигде толком не написано как это делать, по мсдн у меня не получилось, нет таблиц кодов, ошибку выдает.
а если наоборот вывести соддержимое батника в консоль, то надо чтоб при копировании тоже правильно раскладка была включена.
обычно люди по умолчанию русскую включают а у меня английская включена
 
   
 

Код:
invoke LoadKeyboardLayout,419, KLF_ACTIVATE
+----------------------------+----------------------------+
 |     SubLanguage ID       |   Primary Language ID  |
+----------------------------+----------------------------+
15                               10  9                                 0   bit
 

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 08:16 12-02-2022 | Исправлено: bomzz, 08:24 12-02-2022
BorlandIMHO

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

Цитата:
буфер обмена это как бы скрытое окно блокнота,

"А внутри у ней неонка"
Ещё раз перечитайте.
Раскладка клавиатуры имеет значение исключительно при вводе с клавиатуры. Определяется драйвером клавиатуры.  
С буфером обмена р.к. не связана никак. С окном приложения - связана условно (драйвер "помнит", какая из используемых раскладок включена для окна и соответственно интерпретирует отправляемые окну скан-коды нажатых клавиш).
Далее приложение {консоль} интерпретирует нажатую клавишу как символ вводимого текста либо как команду. В зависимости от настроек приложения (в частности, для консоли - текущая кодовая страница) один и тот же символ {вводимый с клавиатуры или выводимый в консоль приложением} может иметь различный код символа {т.е. введённый текст имеет разную кодировку}. Отображается этот символ (по факту - число) символом юникодного шрифта {умолчание для NT6.x; в более древних системах умолчальный шрифт не-юникодный}. Соответствие <кода символа> <коду символа шрифта> определяется кодовой страницей. См. "демо-скрипт с 7 кодировками": при соответствии <кодировки текста> текущей <кодовой странице отображения консоли> текст отображается правильно, иначе "кракозябрами". При этом сам текст никак не меняется.
 
Так, вкратце, работает с текстом виндовая консоль. И {более-менее} так же работают штатные консольные приложения.
 
Никакого отношения к работе самолепных поделий это не имеет. Там всё определяет лепила (аффтар поделия): и интерпретацию нажатия клавиши в символ, и учёт/неучёт кодовой страницы консоли/текста при вводе/выводе.
Программирование консольных приложений - отдельная большая тема; в рамках данного топика - ОФФТОП.
 
Теперь, надеюсь, понятно?..

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

Всего записей: 1600 | Зарегистр. 12-10-2006 | Отправлено: 13:46 12-02-2022 | Исправлено: BorlandIMHO, 15:18 12-02-2022
bomzz

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

Всего записей: 3338 | Зарегистр. 29-03-2016 | Отправлено: 15:22 12-02-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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2023

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru