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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

cchameleone



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ 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 (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
radeonuser

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zmy111
 
Я не сторонник постоянно висящих процессов. Давайте доделаем эту версию.
 
С учетом замечаний она меня вполне устраивает, но при добавлении языка ещё нужно добавить проверочку, может язык уже добавлен и добавлять не нужно, а просто на него переключиться.
 
Итоговый алгоритм:
PerLang.exe - показывает окно помощи
PerLang.exe +0423 - проверяет, есть ли BEL язык в системе, если нету - то добавляет BEL язык. Далее выводит подсказку и делает BEL активным
PerLang.exe +0422 hide - проверяет, есть ли UKR язык в системе, если нету - то добавляет UKR язык. Далее не показывает подсказку и делает UKR активным
PerLang.exe -0423 - удаляет BEL, подсказку выводит, перереключает на ENG
PerLang.exe -0422 hide - удаляет UKR, подсказку не выводит, перереключает на ENG
 
Надеюсь понятно расписал.
Вот такая автоматизация, на 90% ускорит работу при нечастом использовании 3-го языка.
 
 
Добавлено:
Jonmey

Цитата:
Для ХР существует аналогичный, но немного другой метод. То есть, не принципиально.
Кроме этого, для ХР и ниже есть переключалка Ninja,  

 
1) Пожалуйста расскажите метод, чтобы Zmy111 мог в исходник вставить и оно работало на всех ОС
2) Как называется правильная переключалка от Ninja, если KeySwitcher это не она?

Всего записей: 921 | Зарегистр. 09-05-2018 | Отправлено: 09:52 03-06-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser
1. Надо гуглить. Сто лет не пользовался XP.
2. Keyboard Ninja

Всего записей: 1319 | Зарегистр. 17-01-2011 | Отправлено: 10:01 03-06-2018
radeonuser

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey
 
Может знаете переключалки с открытым исходным кодом, чтобы подсказать Zmy111 как это реализовать на Си.

Всего записей: 921 | Зарегистр. 09-05-2018 | Отправлено: 11:44 03-06-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser
Погуглите.  
Вроде Mahou, но ему нужны Net'ы.
XNeur, loloswitcher, Keyla, dotSwitcher, Normal Keyboard Switcher, Recaps...
 
* * *
 
Относительно XP типа такого:

Цитата:
rundll32.exe shell32,Control_RunDLL intl.cpl,,/f:"swedish.txt"
 
Content of Swedish.txt
 
[RegionalSettings]
     LanguageGroup=1
     :Display menus and dialog boxes for non Unicode programs.
     SystemLocale=00000409
     ;sorting numbers, time, currency and date
     UserLocale=0000041d
     UserLocale_DefaultUser=0000041d
     ;Keyboard layout
     InputLocale=041d:0000041d
     InputLocale_DefaultUser=041d:0000041d

Всего записей: 1319 | Зарегистр. 17-01-2011 | Отправлено: 12:26 03-06-2018 | Исправлено: Jonmey, 13:30 03-06-2018
Zmy111



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

Цитата:
Для ХР существует аналогичный, но немного другой метод.

 
Покажите этот метод.
 
 
 
 

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 13:30 03-06-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zmy111
http://www.oszone.net/display.php?id=3480
http://forum.oszone.net/showthread.php?t=56339&page=all

Всего записей: 1319 | Зарегистр. 17-01-2011 | Отправлено: 13:42 03-06-2018
Zmy111



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

Цитата:
Я не сторонник постоянно висящих процессов.

А ctfmon.exe у вас не висит? Ведь он выполняет ту же задачу.
 
radeonuser, в принципе я нашёл ключик.
Но сегодня я немного занят, завтра сделаю.
Но есть ещё вопрос. Что делать с ярлыками на рабочем столе, после удаления языка?
Их же тоже надо удалять, и освобождать клавиши надо.

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 16:18 03-06-2018 | Исправлено: Zmy111, 16:23 03-06-2018
vasyosuol_24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажете, как сделать посредством bat-файла копирование в буфер обмена? Есть длинный числобуквенный ряд (код), его нужно поместить в буфер обмен. Так, чтобы я потом мог этот код вставить, например в это сообщение.
Сам я в этом, увы, чайник
 
Добавлено:
Ленивый чайник, притом . Не то, чтобы совсем, но...
Сложно было сформулировать вопрос для поиска в гугле - столько всего выползает!
В общем, меня вполне устроила комманда CLIP < README.TXT
Короч, спасибо алфавиту за любезно предоставленные буквы (с)

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 18:41 03-06-2018
radeonuser

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

Цитата:
Но есть ещё вопрос. Что делать с ярлыками на рабочем столе, после удаления языка?
Их же тоже надо удалять, и освобождать клавиши надо.  

 
Созданные ярлыки не должны удаляться и закрепленные за ними клавиши быстрого вызова не должны высвобождаться. Предполагается, что больше ни одна программа не будет их использовать в таком виде.
 
Например я задействовал:
Ctrl+Alt+B - добавить BEL
Ctrl+Alt+D - (delete) удалить BEL
 
Кому нужен будет украинский, легко запомнить
Ctrl+Alt+U - добавить UKR
Ctrl+Alt+D - (delete) удалить UKR
 
Интересно заюзать такую комбинацию, но походу это невозможно свойствами ярлыка:
Ctrl+Alt+B - добавить BEL
Ctrl+Win+Alt+B - удалить BEL (там 3 клавиши подряд, удобно зажимать)
 
 
Можно в программу добавить команду
PerLang.exe /linkdelete - которая удалит созданные ярлыки, но пользователь и сам удалит, если не будет использовать.
Короче это не принципиально.

Всего записей: 921 | Зарегистр. 09-05-2018 | Отправлено: 21:40 03-06-2018 | Исправлено: radeonuser, 21:43 03-06-2018
Zmy111



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser, оболочка грузит все ярылки при запуске.
Win не получится.
 
 

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 22:51 03-06-2018 | Исправлено: Zmy111, 18:15 12-06-2018
Jonmey

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

Цитата:
Не подскажете, как сделать посредством bat-файла копирование в буфер обмена? .... В общем, меня вполне устроила комманда CLIP < README.TXT  
Например:
 
@ECHO OFF &CHCP 1251 >NUL
SETLOCAL ENABLEEXTENSIONS
TYPE NUL | CLIP
TYPE README.TXT | CLIP

 
Если у вас Windows XP и ниже, то, разумеется, этот вариант не подойдет, как и упомянутый вариант
 
@ECHO OFF &CHCP 1251 >NUL
SETLOCAL ENABLEEXTENSIONS
CMD /C ECHO OFF | CLIP
CLIP < README.TXT

 
* * *

Цитата:
Лучше научитесь пользоваться TCIMG http://tc-image.3dn.ru/

Лучше осваивать TC с нуля, чем тратить то же самое время на приручение чужих тараканов.
Просто потому, что в трехгигабайтных "сборках" TC, как показывает опыт, для конкретного юзера напихано примерно 95% хлама. На поиски и обнаружение остальных 5% уйдет времени как раз столько, чтобы освоить TC и создать собственную сборку под себя.
 
Если же имелась ввиду утилита TCIMG, то давать на нее ссылку следует сюда:
http://wincmd.ru/plugring/TCIMG.html
или сюда
http://forum.ru-board.com/topic.cgi?forum=5&topic=47370
или на худой конец, сюда
http://tcimg.dreamlair.net/TCIMG_ONLINE.html

Всего записей: 1319 | Зарегистр. 17-01-2011 | Отправлено: 23:23 03-06-2018 | Исправлено: Jonmey, 00:11 04-06-2018
vasyosuol_24

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

Цитата:
короче накатал я на скорую руку скрипт, если не будет работать скажите.  

Спасибо, только это всё слишком сложно для меня. Да и не нужно, в общем-то.
В целом, идея была такая: 70-няя бабуля записывается ко врачу в пол-ку через портал гос. услуг. Учится бабуля не хочет (не может), хотя и "шарики по экрану" гоняет, да и в инет активно лезет . Убил целый год, чтобы ей объяснить "Ctrl+C" & "Ctrl+V" - никак. 2-е операции удержать в голове - ни в какую, возраст, что не говори. Да и с выделением нужного фрагмента текста (номер полиса) тоже проблема: что мышкой, что кнопками - Беда! Сердце кровью обливается наблюдать за её "извращениями" (Radmin) - а вдруг рядом не окажусь?
Сделал полезняху на базе того батника - хоть "Ctrl+C" жать не надо, достаточно "Ctrl+V".
Но и тут масса "подводных камней": норовит "V" нажать дважды, а то и трижды - руки по кнопкам не попадают. Что делать - старость, не радость .
В общем, дотумкал как немного оптимизировать процесс - батник сейчас имеет вид:
CLIP < polis.txt
Polis.url
Где Polis.url - https://portal52.is-mis.ru/#!/office/!/
При открытии странички открывается окно авторизации, остаётся только "Ctrl+V" нажать. Что получается далеко не всегда, по причинам описанным выше.
Как бы сделать так, что инфа из polis.txt вставлялась в окошко сама? Чтобы не приходилось человеку с "Ctrl+V" мучаться? Окошко, куда вставляется код, активно если что.  
ОС - Windows 7 x64

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 10:54 04-06-2018
Zmy111



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser, короче такое дело.
 
Всё работает, кроме одного. После удаления раскладки, он остаётся в памяти всех процессов,
которые были загружены до этого момента.
 
Т.е, очень неприятная вещь. В современных WINDOWS процессы находятся в защищённом (изолированном) режиме.
Добавить можно, а удалить сложнее.
 
Предположим, работаете вы в блокноте, добавляете язык. Что-то там пишите.
Удаляете язык. Язык удаляется из системы, а в адресном пространстве процесса с этим пидом,  
он ещё присутствует.
Он не просто присутствует, а он ещё занимает область памяти, которую предпологалось освободить.
Что это значит? Это значит, что когда вы дойдёте своими Ctrl+Shift до языка,
который стоит перед удалённым, вы дальше идти не сможете.  
Ну т.е., процесс видит, что у него в памяти есть язык, он пытается на него переключиться,
а этого языка в системе уже не существует. И он его перескочить не может.
 
И так со всеми процессами которые были запущены. Если они были запущены до того,
как изменятся системные языки, они никто не будет видеть,  
что произошло такое глобальное явление.  
 
Вот, если хотите я скомпилирую его.  
 
Или если у вас есть батники, которые работают с этими XML-ми, то легче их запускать.
Например, они лежат в той же папке, просто их запускать на выполнение.
 
Можно запрограммировать, чтобы быстро, после удаления языка запустилась панель "Языки",
и нажать "OK". Так обновлятся все потоки. И можно будет дальше нормально работать.
 
 

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 17:58 04-06-2018 | Исправлено: Zmy111, 18:54 04-06-2018
radeonuser

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zmy111
 
Компилируйте, давайте пощупаем за живое, а там и мысли походу появятся.
 
Я так понял, нужна какая-то команда, которая "обновит" список имеющихся в системе языков. Типа перезапустить проводник, но что-то по-легче. Но переключалки языков это же как-то делают, надо подсмотреть в их коде. Должен быть какой-то выход... должен...
 
Добавлено:
Как вариант запускаем панель "Языки", ищем в памяти нужное окно и программно нажимаем на кнопку ОК. Но будет окно промигивать, думаю есть и более красивые способы.

Всего записей: 921 | Зарегистр. 09-05-2018 | Отправлено: 00:00 05-06-2018
thejustsoul



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol_24
Сделайте GUI поверх экрана с большой кнопкой ВСТАВИТЬ, которая будет вставлять содержимое из файла или прям из скрипта, еще можно добавить таймаут в 5 сек например, если нажали дважды на кнопку за короткий промежуток.
На каком-нибудь AutoHotKey, AutoIT.. тут есть темы, где можно спросить как.

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 00:11 05-06-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol_24
Существуют программы (и в виде примочек к браузерам тоже есть) автоматизации действий в браузере. Ищите в темах. Можно полностью автоматизировать любые операции (в том числе и вход на сайт с любыми паролями). Установите ей такой автоматизатор и будет входить на сайт обычным двойным кликом на ярлыке - остальное программа сделает за нее. Можно даже формы всякие автоматом заполнять и тд.
 
Кроме этого можно воспользоваться экранной клавиатурой, что может оказаться для нее легче, чем живая клавиатура, поскольку нужно будет только мышкой пользоваться (при этом можно тупо написать последовательность нажатия клавиш, напр. Ctrl, V, Enter... и т.д., что позволит ей избежать нажимания двух клавиш обновременнно). Кроме этого включите звуки при вводе символов (типа печатающей машинки), чтобы она слышала шелчек после каждой введенной буквы (уменьшит число двойных нажатий на клавиши). И увеличьте интервал для двойного клика (в настройках мыши).

Всего записей: 1319 | Зарегистр. 17-01-2011 | Отправлено: 05:00 05-06-2018 | Исправлено: Jonmey, 05:06 05-06-2018
Zmy111



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser, вот. Я не буду делать справку. Скачайте, а я потом её удалю.
 
https://cloud.mail.ru/public/CQh3/oZU3CvMHd
 
Эта панель будет появлятся только после удаления. Но если надо, то можно сделать и после добавления.

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 11:17 05-06-2018 | Исправлено: Zmy111, 11:50 05-06-2018
radeonuser

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zmy111
 
Спасибо. Порадовали!!!Нормально работает.  
Пока вижу 2 ньюанса:
1) Подсказку нужно написать более понятно. Человек, который не читал наш топик и первый раз увидит эту программу, не сразу вкурит для чего она
2) При удалении языка мигает вот окно с обновлением свойств. При создании CreateProcess можно же указать создавать окно в фоновом/невидимом/отключенном стиле. Даже если процесс запускается, но чтобы его не было видно.

Всего записей: 921 | Зарегистр. 09-05-2018 | Отправлено: 16:48 05-06-2018
vasyosuol_24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zmy111
Вижу, вы с WSH "на ты"
Подскажите, плииз, как в моём случае реализовать: CLIP < polis.txt
Через WshShell.Run, вестимо. Где находится CLIP.ехе - знаю, как обратится в общих чертах - знаю, а вот с аргументами... В частности, "<" меня вводит в замешательство

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 17:47 05-06-2018
Zmy111



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
radeonuser, пожалуйста.
 
1) Я же говорю, что я буду удалять её. Программа узкоспециальная, и вряд ли кому-то понадобится.
2) Дело в том, если не появится это окно, то невозможно будет нажать на клавишу "ОК".
 
Потому что, неизвестен, ни её идентификатор, ни её хэндл.
На момент запуска функции, этих свойств элемента, как и самого элемента, существовать ещё не будет.
 
 
vasyosuol_24, это не мой батник. У меня ХР, и этот батник не работает.
И я же вам уже писал, что VBS, JScript и батники морально устарели.
 
Используйте TCIMG. Там есть прекрасная справка.
Андрюша сделал программу, которая решает, практически любые задачи.
Вы на ходу собираете конструктор для командной строки,
которая нужна вам в данный момент. В программе уже всё встроенно.
Вам главное, правильно дасть программе понять, что вы от неё хотите.
С помощью параметров командной строки, вы можете решить, практически любую задачу.
От простого, копировать-переместить, до сложнейших логических и циклических конструкций.
 
А если вы хотите подучиться VBScript, то читайте здеcь http://www.script-coding.com/WSH/WshShell.html про Run.

Всего записей: 55 | Зарегистр. 19-09-2016 | Отправлено: 17:55 05-06-2018 | Исправлено: Zmy111, 19:45 05-06-2018
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru