|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
народ, привет. Мне нужна помощь. В cmd как вы заметили временами бывает такая ситуация, что когда вам нужно копировать текст и вставить его прямо в консоль и она имеет разрывы строки, то cmd разбивает вставленный текст на строки по этим символам разрыва строки и выполняя каждую из таких строк ( где есть символ разрыва строки ) как команду. Т.е. эти символы разрыва строки не экранируются при вставке текста в cmd консоль, а воспринимаются, мол ты в cmd уже нажал Enter несколько раз и это очень неудобно и раздражает. Прошу вас: как сделать так, чтобы в cmd консоль при вставки текста, в котором были какие-либо разрывы строки не разбивала бы вставленный текст команды на строки( ничего бы не делала ) ???? p.s. Если это проще сделать в винде, написав хуки( перехватчики ), то я нашёл эту статью и по ней делаю: https://habr.com/ru/company/icl_services/blog/324718/ но там не говорится как конкретно перехватывать буфер обмена и как его менять и обрабатывать в зависимости от того, в какую прогу ты копипастишь текст( в cmd или куда-то ещё ), кто владелец буфера обмена, какой формат содержимого буфера( придётся лопатить техническую доку в win32 API ), чтобы задать в коде, чтобы добавлялись спецсимволы при копипасте ТОЛЬКО в cmd консоле винды, да и я давно не кодил на C++ , чтобы написать утилиту быстро. Как бы вы поступили на моём месте, но при этом желательно не переходили с cmd на другой шелл ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 06:30 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
DrillDriveКак бы вы поступили на моём месте, но при этом желательно не переходили с cmd на другой шелл ??NPP, и в нём макрос, собирающий строки в одну и выполняющий в его в CMD. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 07:36 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
"Умному человеку трубка даёт возможность подумать, а дураку - что-нибудь пососать". Открыли блокнот, вставили блок текста, поправили всё, что нужно. Ещё раз подумали и вставили результат в "куда надо". P.S. Вот жеж механики формулы-раз - всё им питстопы мерещатся ... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 12:03 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
Basil A. Sidorov"Умному человеку трубка даёт возможность подумать, а дураку - что-нибудь пососать". Открыли блокнот, вставили блок текста, поправили всё, что нужно. Ещё раз подумали и вставили результат в "куда надо". P.S. Вот жеж механики формулы-раз - всё им питстопы мерещатся ... Тот бред, что вы сморозили ни разу не делает вас умнее. Троллинг не более. Предлагаете в блокноте править ??? Гениальный ответ. А что посоветуете дальше ??? Жарить мясо на костре, если газовая плита сломается ??? Идти пешком, если тролейбус не будет ходить в моём районе ??? Выбросить кофемашину, если жидкость для чистки от его накипи закончится, а нигде её поблизости не будет продаваться ?? Поэтому научитесь помогать, а не язвить, а если вам и вправду нечего толкового предложить, то ничего не говорите больше. Мне не до смеха и не до шуток. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 20:49 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
DrillDrive, а чем плох совет с текстовым редактором ? Текстовый редактор правит текст лучше всех. а cmd твой - это до сих пор торжествующее убожество. И майкрософтовское консольное окно, к нему прикрученное, убожество. Консольное окно тогда уж лучше взять от conemu. Ну и, ясен перец, powershell на повестке дня, а не cmd. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 22:28 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
volodin661DrillDrive, а чем плох совет с текстовым редактором ? Текстовый редактор правит текст лучше всех. На самом деле всё очень просто. Ну конечно кажется, что править в нотпаде - это норм вариант, когда реально ты пользуешься командой раз и уже забыл про неё, но вот представьте какой у меня случай: если вы работаете с локальным git репозиторием на винде в какой-то среде разработке и каждый раз запускаете либо одну и туже команду для гита, в которой разрывы строки есть( по-крайней мере 1) либо запускаете curl, куда в качестве запроса пихаете большую json-ину( и в ней тоже надо чистить от брейклайнов эту строку в json формате ), то вы сначала посмотрев в гугле или на команду в друих источниках копипастите в блокнот, делаете там экранирование брейклайнов или вообще их убираете, а потом вы перемещаете в консоль cmd, когда можно автоматизировать процесс экранирования в винде, но как - в этом и есть моя тема и злоба дня одновременно. Я конечно хочу Линукс поставить, но у меня не т подходящих возможностей( я имею в виду харддиск отдельный, чтобы не париться память делив на логических разделах, да дистр надо найти подходящий под мои нужны ) а cmd твой - это до сих пор торжествующее убожество. Ну и, ясен перец, powershell на повестке дня, а не cmd. Если честно, то не смотря на то, что у cmd относительно отвратительный синтаксис, но в powershell он меня бесит ещё сильнее, так как он гораздо многословнее и не удобнее. Приходится учить с нуля простейшие системные команды, переходя на другой шел. И майкрософтовское консольное окно, к нему прикрученное, убожество. Консольное окно тогда уж лучше взять от conemu. Так и есть. Поэтому у меня этот conemu давно есть. Но код то управления буфером я написать могу, но как мне автоматизировать экранирования брейклайнов в терминале, чтобы не пришлось отвлекаться на стронние текстовые редакторы, а править только если что в терминале. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 23:14 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
в Win10 норм консоль и копируется там всё отлично ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 23:30 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
DrillDriveПредлагаете в блокноте править ???Да. Просто потому, что в (открытом) блокноте можно держать десяток "однострочников", требуемых "здесь и сейчас" и никакой автомат разумной сложности не разберёт где "разрыв строки из-за форматирования", а где - начало новой команды. Если, вдруг, вам потребовался "многострочник". P.S. Очень напоминает эпизод из "Записок жены программиста", когда человек пару дней автоматизировал то, что за пару часов делалось "ввёрде". Там, напомню, в процессе тестирования чернила в принтере закончились. А так - да, автоматизированный вариант справился бы минут за пятнадцать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 07:49 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
народ вы с какой планеты вообще? в windows 10 консоль практически как linux, вы еще DOS Установите и понойте о том, как то шел убогий ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:37 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
Могу ошибаться, но, вроде, переносы строк уже и в восьмёрке "подшаманили", сделав логическое "свёртывание" на экране и "физические переносы" в буфере строк консоли. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 10:36 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
DrillDriveКак бы вы поступили на моём месте, но при этом желательно не переходили с cmd на другой шелл ?? 1. Если есть часто выполняемые команды - для них я бы создал пакетные файлы, и запускал их 2. Данные, которые надо передавать пост-запросами хранил бы в отдельных файлах 3. Если все-таки хочется работать через буфер обмена - написал маленькую прогу, которая висит в трее и позволяет взять данные из буфера обмена, выполнить желаемые преобразования и кинуть обратно в буфер обмена или даже запустить cmd с требуемой командой 4. Если источник команд относительно постоянный - написал программу, которая сама берет нужные команды из этого источника, возможно как-то их трансформирует, затем выполняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 11:26 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
DrillDrive, Чаще, при работе с URL (или URI?), приходилось экранировать символ "&", а не перевод строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 12:07 |
|
консоль cmd в Windows очень чувствительна к символам разрывам строки
|
|||
---|---|---|---|
#18+
x1ca4064DrillDriveКак бы вы поступили на моём месте, но при этом желательно не переходили с cmd на другой шелл ?? 1. Если есть часто выполняемые команды - для них я бы создал пакетные файлы, и запускал их 2. Данные, которые надо передавать пост-запросами хранил бы в отдельных файлах 3. Если все-таки хочется работать через буфер обмена - написал маленькую прогу, которая висит в трее и позволяет взять данные из буфера обмена, выполнить желаемые преобразования и кинуть обратно в буфер обмена или даже запустить cmd с требуемой командой 4. Если источник команд относительно постоянный - написал программу, которая сама берет нужные команды из этого источника, возможно как-то их трансформирует, затем выполняет. Огромное спасибо за такой расписанный ответ. Сначала я засомневался, но потом понял, что во всех пунктах, что вы перечислили есть смысл и они проще в реализации и один из самых лучших ответов за сегодня. Но остался один нюанс именно по 3 и 4 - ым пунктами кажись самый последний. Например, как вы поняли я хочу сделать задумку шаманства с буфером обмена, но при этом сделать листенер в том же самом трее, который узнаёт пользователя буфера обмена и прослушивает именно события вставки текста из буфера из узнаёт в PID экземпляра какой программы был совершён копипаст текста. Чтобы программа исправляла содержимого буфера только если вставляешь строку в консоль. Я копался с докой для win32 API: https://docs.microsoft.com/en-us/windows/win32/dataxchg/using-the-clipboard и нашёл подобное для правки контента в буфере обмена EditCopy(VOID), но эта функция не является частью API винды, а в API для буфера обмена https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-openclipboard я нашёл максимум это только HWND хэндлер/дескриптор, который отвечает за манипуляцию с виндосовскими окнами, но самой функции, которая отвечает за вставку из буфера не нашёл. Видно поэтому наверное вы правы, что тут хуком не обойдётся и лучше написать утилиту и хранить в трее, но только я повторюсь чтобы была возможность не только самим взять данные из буфера, но и автоматизировать это. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 13:10 |
|
|
start [/forum/topic.php?fid=26&msg=39860682&tid=1492361]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 522ms |
0 / 0 |