Каждый пользователь Хабра, хоть раз напечатавший здесь «пробел-дефис-пробел», может видеть, как дефис магическим образом заменяется на длинное тире. Это сработала автозамена, похожая на ту, что имеется в ворде и других текстовых процессорах.
Что такое длинное тире
Тире, или попросту черточка (dash), бывает трех основных сортов, если не заморачиваться:
- Дефис, самая короткая, вводится с клавиатуры.
- Длинное тире или EM DASH — это черточка шириной в латинскую M. Вот как в этой фразе.
- Среднее тире или EN DASH — черточка шириной в латинскую N. Вот такая: –
Если же заморачиваться, черточек этих существует изрядное множество, со своими традициями, гуру и холиварами. Ну как без них.
По роду деятельности мне приходится иметь дело с типографикой, и чтобы оформлять текст правильно и сразу, не полагаясь на милость железного мозга, нужно уметь вводить с клавиатуры символы, которые ввести нельзя. В частности, то самое длинное тире, которое часто используется в оформлении прямой речи.
Но, как мы знаем: если нельзя, но очень хочется, то можно. Долгое время сидел на Windows, и пользовался для быстрого ввода отсутствующих на клавиатуре символов известной комбинацией: зажатый <Alt> + серия нажатий на малой (цифровой) клавиатуре. Например, длинное тире вставлялось набором 0151 с зажатым альтом. (Способ работал безотказно на всенародно любимой Хрюше, как сейчас — не знаю, подскажите в каментах.)
Несколько лет назад, когда принял окончательное решение переезжать на Linux, в полный рост встала проблема быстрого ввода типографских символов. Это не только тире, это разного рода типографские кавычки — «елочки» и „лапки”, а еще градусы
водки
Цельсия °, приближенное равенство ≈ и прочие нужные штуки.
Как водится, полез в интернеты поискать решение. Как водится, нашлось оно сразу.
Клавиша Compose
Этот способ поисковики выдали в большом количестве. Что это такое?
Метод Compose позволяет, нажав и отпустив специально назначенную клавишу, ввести кодовую последовательность символов и получить на экране
фантик
Например, нажав 1, а потом 2, мы получаем ½. Чтобы получить рекомое длинное тире, следует нажать дефис три раза, и так далее.
Учи кодовую таблицу, бро
требует запоминания кодовых комбинаций, когда интуитивных, когда не очень.
На роль Compose можно назначить, например, левый Win, он же Super. Или правый, кому как удобно. Впрочем, через какое-то время я почувствовал: некая неуютность метода, ощущаемая вначале, никак не желает рассасываться со временем. Вспоминал стремительный метод выстукивания по цифрам и слегка ностальгировал.
Level 3
Напомню, дело было несколько лет назад. В потоке поисковой выдачи несколько раз встречались упоминания о таинственном третьем уровне, но что это такое, выгуглить сходу не удалось.
(Или оно уже было переведено на русский?.. не помню. Не важно. И — не буду утомлять лирикой, сразу к делу.)
У клавиатуры есть уровни. Первый уровень — когда ты просто нажал клавишу. Например, нажав «А», напечатаешь «а»; нажав «2» — напечатаешь «2».
Задействовав третий уровень, ты получишь возможность печатать и другие символы, только зажимать надо уже не шифт, а специально назначенную тобой клавишу-модификатор. Для меня удобно переключаться на третий уровень правым Alt. Легко и просто вводить часто используемые кавычки-елочки и длинные тире одной рукой.
Но и это не все! Зажав одновременно шифт и клавишу Level3, мы получим четвертый уровень и еще немножко символов, которые не поместились в логичные, интуитивно ожидаемые места третьего.
Чтобы задействовать эту плюшку, пользователям Linux надо не забыть включить «дополнительные типографские символы» в «разных параметрах совместимости». Ну и, понятно, выбрать клавишу для выбора третьего уровня (или третьего ряда, в зависимости от перевода, level 3, в общем). После чего можно посмотреть и распечатать карту задействованных символов там же в настройках.
А ведь есть и пятый уровень — но с ним пытливый читатель разберется сам; непытливому же оно и не надо вовсе, как мне нашептывает имха.
Фича есть во всех основных DE (пользователям Gnome 3 придется установить твикер). А как же Windows? Оказывается, и там есть такая возможность. Ключевое слово для поиска — «раскладка Бирмана».
Статья в википедии
Сайт проекта
Сам я, по понятным причинам, эту софтину не проверял. Буду благодарен толковым комментариям знающих. Внесу.
Итого
И пользователи Linux, и пользователи Windows могут настроить себе раскладку Бирмана, либо задействовать метод Compose, либо и то, и другое, как говаривал Винни-Пух.
И да́же мо́жем невозбра́нно расставля́ть ударе́ния ѓд́е́ п́о́п́а́л́о́!
Метод Compose для пользователей Windows советует камрад ainu: проект WinCompose на Гитхабе.
Для андроида есть несколько клавиатур, имеющих что-то вроде третьего уровня. По длинному тапу всплывает окошко, в котором можно выбрать дополнительные символы. Я поначалу использовал Hacker’s Keyboard, потом пересел на ее мод Full Keyboard русскоязычного автора.
20 ноября 2015 г.
20 ноября 2015 г.
Приходилось ли вам когда-нибудь сталкиваться с тем, что необходимо ввести какой-то символ, который отсутствует на клавиатуре? Думаю, что да. Простейший пример — ввод тире. В Windows с этим особых проблем не возникало, кто знал — с лёгкостью мог воспользоваться клавишей Alt и номерной клавиатурой справа, например, Alt+0169 давало символ ©. Но как быть в ОС семейства Linux? И тут есть выход. Просто он немного неочевиден. Итак, хочу рассказать вам о клавише Compose.
Я приведу пример настройки Compose key в ОС Debian, т.к. я её счастливый обладатель. Итак, для включения Composer клавиши необходимо перейти в настройки вашей клавиатуры, а далее в разделе “Комбинации клавиш” необходимо указать кавишу, которая бы вас устроила. Я бы посоветовал выбрать правый Alt или правую клавишу Win. Они, как правило, не используются и хорошо подходят для этой цели.
Собственно, вот и всё, что нужно было сделать. Теперь самое время попробовать ввести какой-нибудь символ. Можно начать с самый востребованных: тире или знак копирайта.
Для того, чтобы ввести какой-либо символ, достаточно нажать один раз на Compose клавишу, а затем ввести последовательность из нужных символов. Например, для ввода тире необходимо последовательно нажать: Compose, затем три дефиса (Compose, -, -, -). Для ввода © нажмите последовательно: Compose + O + C.
Далее приведу таблицу некоторых символов
Первый символ | Второй символ | Результат | Первый символ | Второй символ | Результат |
---|---|---|---|---|---|
‘ | a | á | ‘ | A | Á |
“ | a | ä | “ | A | Ä |
` | a | à | ` | A | À |
~ | a | ã | ~ | A | Ã |
^ | a | â | ^ | A | Â |
o | a | å | o | A | Å |
f | s | ſ («длинная s») | s | s | ß |
, | c | ç | , | C | Ç |
m | u | µ (мю – буква греческого алфавита) | |||
“ | u | ü | u | u | ŭ |
O | R | ® | O | C | © |
< | < | « | > | > | » |
. | ^ | · («средняя точка») | + | – | ± |
x | x | × (знак умножения) | – | : | ÷ (знак деления) |
o | o | ° (знак градуса, код U+00B0) | ^ | 0 | ⁰ («верхний ноль», код U+2070) |
– | — | — | ^ | 1 | ¹ |
^ | 2 | ² | ^ | 3 | ³ |
s | o/0 | § | 1 | 2 | ½ |
1 | 4 | ¼ | 3 | 4 | ¾ |
/ | o | ø (не путать с ⌀ — знаком диаметра) | / | O | Ø (не путать с ∅ — знаком пустого множества) |
– | d | ð | – | D | Ð |
~ | n | ñ | t | h | þ |
T | H | Þ | a | e | æ |
A | E | Æ | ! | ! | ¡ |
? | ? | ¿ | – | L | £ |
= | E | € | = | Y | ¥ |
| | c | ¢ | o | x | ¤ |
/ | / | \ |
Автор: Артур Минимулин ⚫ 20 ноября 2015 г. ⚫ Тэги: Linux, Совет
Что нажимать на клавиатуре?
Среднее тире: Alt + 0150. Длинное тире: Alt + 0151. Цифры следует набирать на цифровой клавиатуре при зажатой кнопке Alt. Работает во всех программах, связанных с набором текста, независимо от настроек автозамен и прочих. автор вопроса выбрал этот ответ лучшим
4 года назад В Линукс есть функция “compose”. Давишь соответствующую клаву (у меня на неё назначен правый Win) – и два раза по минусу – получаешь тире: “—”. В Windows только через таблицу символов или по коду на цифровой клавиатуре справа.
4 года назад Самый простой способ напечатать длинное и среднее тире – это использовать меню вставка специальных символов в редакторе word. Находите эти символы и добавляете в избранное, если вам часто их нужно ставить, чтобы каждый раз не искать.
4 года назад Всё зависит от того, какая у вас клавиатура и где расположены на ней эти знаки. Суть вообще в том, что внимательно посмотрите на клавиатуру. На одной кнопке бывают две и три буквы, знака или символа. И русской раскладке тире-само ставится и надо просто нажать. Подчёркивание – это длинное тире_, надо нажать двумя клавишами. Если у вас клавиша шифт(может просто клавиша широкая со стрелкой вверх), нажмите её и удерживая жмите на – или _ и всё. Ещё вот пригодится: верхний ряд знаков меняется в английской раскладке, а нижний в русской. То есть пробуйте нажав и удерживая шифт(стрелка вверх), нажать ещё какой нибудь знак. Если ничего не происходит, тогда переключите раскладку на другой язык и снова пробуйте. Так вы узнаете в какой раскладке клавиатура реагирует на какие знакие. Надеюсь понятно написал, хотя сам дуб-дубом во всём этом)))/
[272K] 4 года назад Не совсем понятно из данного вопроса, речь идет о Ворде или вообще о любых редакторах. Есть универсальный способ поставить длинное тире, для этого необходимо будет нажать сочетание клавиш “Alt0151”, чтобы получить среднее тире, необходимо нажать на следующее сочетание клавиш: “Alt0150”. Только здесь необходимо набирать цифры, которые расположены справа на клавиатуре, а не те, которые расположены над буквами. Также в Ворде есть раздел “Символы”, здесь нужно будет перейти в подменю “Вставка”, далее открыть “Символ”, и уже выбрать нужные вам символы. Также можно ввести запрос в поисковике Интернета и уже от туда скопировать знаки.
4 года назад Есть такие варианты в редакторе Word. Нажмите клавишу “Ctrl” и, не отпуская ее, на цифровой панели клавиатуры “-“. Получите среднее тире. А если одновременно нажать клавиши “Ctrl” и “Alt”, а затем, не отпуская их, на цифровой панели клавиатуры “-“, получите длинное тире.
4 года назад Для того, чтобы напечатать среднее или длинное тире, вам нужно осуществить ряд несложных действий: 1) Проверьте, включен ли Num Lock. Должен гореть соответствующий индикатор. 2) Нажмите на клавишу “Alt” и удерживайте её. 3) Для получения среднего тире, наберите на цифровой клавиатуре справа цифры 0150. Если же вам нужно длинное тире, то наберите 0151. 4) Когда вы отпустите Alt, на месте курсора появится нужное вам тире. Если тире вам нужно поставить в ворде или другом текстовом редакторе, то потребуется использовать несколько инные комбинации клавиш: Среднее тире: удерживая “Ctrl”, нажмите на цифровой клавиатуре справа “минус”. Длинное тире: удерживая “Ctrl+Alt”, нажмите на ту же клавишу “минус”.
[445K] 3 года назад Для того, чтобы поставить среднее тире, достаточно набрать соответствующий символ с клавиатуры, он находится на буквенной части, где цифры, справа от ноля. Вот символ среднего тире, который можно набрать с клавиатуры: “-“. Чтобы набрать большое тире, можно воспользоваться текстовым документом или поисковиком: ввели запрос, скопировали и вставили. Вот пример длинного тире, символ скопирован из Яндекса: “—”. Еще для оформления текста можно набрать символы, которых нет на клавиатуре, при помощи горячих клавиш. Так, чтобы ввести в текст длинное тире, нажимается “Alt + 0150”. Для среднего тире комбинация почти та же самая: “Alt + 0151”.
3 года назад Клавиша тире есть далеко не на всех клавиатурах. Специальные символы в Ворде это не решение проблемы. Как-то у меня набирается поочерёдным нажатием “пробел дефис пробел“, нормально символ вливается в текст, всё просто и красиво, без ошибок. Здесь на БВ тоже получается. Этот способ работает при нормальной скорости процессора и Интернета. Длинное это получится тире или среднее, зависит от конкретного случая и формата сохранения текста.
Если вам надо поставить длинное и среднее тире в Ворде, то переходим в раздел “Символы”, затем “Вставка” и “Символ”, и там уже выбираем нужные вам знаки. То есть все ищем в меню “Вставка” спец. символов в Ворде. Еще есть такой способ. Он у меня отлично работает. Кнопку alt надо держать зажатой. Единственное помните, что цифры надо вводить те, что на клавиатуре справа.
Самый простой способ: набрать в яндексе “длинное тире” и скопировать это тире из самого первого результата поиска. Ещё можно воспользоваться таблицей символов. Или зажать кнопку Алт и набрать цифры с картинки, но, к сожалению, данный способ срабатывает не всегда. Первый способ надёжнее и быстрее. Знаете ответ? |
Если Вы работаете в редакторе Word, то он должен переводить два коротких тире в одно длинное.
Если же Вам нужно создать длинное тире в других обстоятельствах, то для этого достаточно комбиннации клавиш Alt+0151 и получается —
Держим клавишу Alt и на цифровой панели справа набираем комбинацию цифр 0151. Мне часто доводилось читать предупреждение, что при этом должна быть активирована кнопка NumLock (простыми словами – с зажжённой лампочкой), но я пробовала и так, и эдак – комбинация работала в любом случае.
Клавиатура у различных компьютеров может слегка отличаться расположением некоторых клавиш. На картинке из Интернета я обозначила розовой стрелкой Alt, жёлтой – NumLock, а салатовым овалом – расположение цифр. На моей клавиатуре всего одна кнопка Alt, а NumLock расположена сразу справа от Backspace. Однако если Вы видите клавиатуру не второй раз в жизни, то легко всё найдёте на своём аппарате.
Поосторожней с цифрами – маленькая ошибка приведёт к совсем иным результатам, потому что короткое тире тоже можно получить похожей комбинацией – Alt+0150.
Комбинация кнопок Schift+обычное тире в латинской раскладке даёт не длинное тире, а
_ – это что угодно, но не то длинное тире, которое обычно всем нужно.
Как правило, после
вызова команды система приглашает вас
ввести какие-либо параметры. Это может
быть указание координат точек для
построения объектов, выбор объекта для
редактирования, значение какой-либо
переменной. Это может быть также выбор
опции команды, если команда имеет
несколько вариантов исполнения. При
этом возможны два вида ввода параметров.
Ввод с командной строки.
В большинстве
случаев используется именно этот способ.
В отличие от вызова команды, когда
решение о способе вызова вы принимаете
сами, в данном случае все зависит от
того, что за команда выполняется и какой
ввод предусмотрен системой.
Запрос ввода
требуемых параметров появляется в
командной строке. Если можно ввести
только один параметр, то просто появляется
соответствующее приглашение. В ответ
вы вводите требуемый параметр (например,
указываете на экране точку).
Если команда имеет
опции (т.е. варианты выполнения), то они
перечисляются в командной строке, и вы
должны сделать выбор. При этом соблюдаются
следующие правила:
Одна из опций
команды считается выбранной по умолчанию
(обычно это наиболее часто используемая
опция). Для этой опции в командной строке
появляется приглашение к вводу требуемого
параметра. Выглядит это обычно так:
Specify point or […]
В квадратных
скобках перечисляются другие возможные
для данной команды опции. Если вы не
хотите пользоваться опцией по умолчанию,
вы можете выбрать одну из других опций.Различные опции
в списке разделяются знаком «/».
При этом несколько букв имени опции
являются заглавными, а остальные
строчными. Для выбора нужной опции
достаточно ввести с клавиатуры те
буквы, которые написаны заглавными, и
нажать клавишу ENTER.
При этом можно вводить буквы в любом
регистре. После этого появится приглашение
к вводу параметров, необходимых для
выполнения этой опции.Если необходимо
ввести числовое значение, то значение
по умолчанию написано в угловых скобках.
Если оно подходит, достаточно нажать
ENTER.
Если нет – вводится другое значение.
Поэтому важно
при выполнении команды смотреть на
командную строчку!
Ввод в диалоговом окне.
Ряд команд позволяют
вводить все параметры в диалоговом
окне. В этом случае в ответ на вызов
команды появляется диалоговое окно. Но
если отдавать предпочтение использованию
командной строкой, можно подавить
появление диалогового окна. Для этого
команду необходимо ввести только с
командной строки и перед ее именем
следует поставить дефис.
Для того, чтобы
отменить команду в процессе выполнения,
необходимо нажать клавишу “Esc“,
а для того, чтобы закончить выполнение
команды – клавишу ”
ENTER ” (одни команды допускают ввод
ограниченного числа параметров, после
чего сами заканчиваются, а другие
позволяют вводить сколько угодно точек
– такие надо заканчивать с ” ENTER “).
Перед тем, как вводить имя новой команды
с командной строки убедитесь, что
предыдущая была закончена или отменена
(в командной строке должно быть приглашение
«Command»).
Если вызывать команду через меню или с
панели инструментов, предыдущая
заканчивается автоматически.
Опции команд
рассматриваются на примере команды
создания отрезка – LINE.
Поскольку она
позволяет начертить отрезок, в меню она
находится в разделе Draw,
и кнопка с этим инструментом находится
на панели инструментов Draw.
Сокращение
этой команды – L.
Вызываем
команду любым способом и первым делом
рассматриваем смотрим командную строку.
LINE Specify first
point
Выполняется команда
LINE,
никаких опций на данный момент выбрать
нельзя, система запрашивает первую
точку. Воспользовавшись простейшим
способом, указывается произвольная
точка на экране, нажав и отпустив левую
кнопку мыши. В отличие от некоторых
графических редакторов кнопку мыши не
надо держать нажатой.
В командной строке
появилась надпись:
Вот теперь можно
или указать следующую точку, или выбрать
опцию. Опция Undo
позволяет отменить последний нарисованный
сегмент. Для того, чтобы это сделать
надо ввести “u“.
При указании второй точки приглашение
в командной строке не изменилось,
ожидается ввод последующих точек для
построения новых сегментов линии. При
выборе опции Undo
последний нарисованный сегмент исчезнет,
но команда не отменится (команда
отменяется при нажатии Esc).
При построении
второго сегмента содержимое командной
строки изменится:
Возникает три
возможности: указать очередную точку,
отменить предыдущий сегмент или замкнуть
фигуру, проведя линию в начало. Чтобы
выполнить последний вариант, вводится
букву «с», после чего производится
нажатие клавиш ENTER или ESC. В данном случае
обе этих клавиши срабатывают одинаково.
ENTER завершает команду, поэтому следующий
сегмент уже не строится, а ESC отменяет
построение текущего сегмента (еще не
созданного), после чего команда
завершается.
Выбирать опции
команды можно и по-другому. Как правило,
если не изменять настройки, нажатие
правой клавиши в процессе выполнения
вызывает вывод на экран контекстного
меню, из которого можно выбрать нужную
опцию.
Многие люди зачастую игнорируют такой знак препинания, как тире. Тире служит для различных целей и имеет разные размеры. Наиболее часто используются среднее тире (–) и длинное тире (—); размер среднего тире равен букве «n», а длинного тире – букве «M». Такие тире используются для того, чтобы обозначить пояснительный текст, начало диалога, и другое.
Обратите внимание, что в большинстве случаев в русском языке используется среднее тире, а в английском языке – среднее и длинное тире.
-
- Как правило, среднее тире используется для обозначения диапазона чисел, а длинное тире – пояснительного текста (то есть длинное тире выступает в роли круглых скобок, но акцентирует большее внимание на пояснительном тексте).
-
Введите среднее тире. Зажмите , а затем нажмите на цифровой панели клавиатуры. На экране отобразится среднее тире.
-
Введите длинное тире. Зажмите , а затем нажмите на цифровой панели клавиатуры. На экране отобразится длинное тире.
-
- Если вы работаете на ноутбуке, сначала нажмите клавишу , чтобы активировать цифровую панель. Помните, что если нажать клавиши с цифрами, которые расположены в верхней части клавиатуры, специальные символы введены не будут.
-
Введите среднее тире. Зажмите , затем нажмите на цифровой панели, а потом отпустите . Среднее тире отобразится там, где находится курсор.
-
Введите длинное тире. Зажмите , затем нажмите на цифровой панели, а потом отпустите . Длинное тире отобразится там, где находится курсор.
-
-
Введите среднее тире. Зажмите и нажмите на цифровой панели. На экране отобразится среднее тире.
-
Введите длинное тире. Зажмите клавиши Option+ Shift и нажмите на цифровой панели. На экране отобразится длинное тире.
-
- Чтобы ввести среднее тире, нажмите , а затем нажмите .
- Чтобы ввести длинное тире, нажмите , а затем нажмите .
-
- Чтобы назначить клавишу в качестве клавиши , откройте утилиту «Настройки» и выберите «Раскладка клавиатуры». Нажмите «Параметры» и назначьте определенную клавишу клавишей .
- Чтобы ввести среднее тире, нажмите , а затем нажмите .
- Чтобы ввести длинное тире, нажмите , а затем нажмите
-
Откройте HTML-редактор. Можно воспользоваться специальными HTML-кодами, чтобы отобразить тире на веб-странице. Существуют два способа, результат применения которых будет одинаковым и не зависящим от браузера. Чтобы код было удобнее читать, лучше воспользоваться вторым способом.
-
Введите среднее тире. Чтобы отобразить среднее тире на веб-странице, введите “–” или “–”.
Об этой статье
Мы делимся множеством советов и приемов, связанных с запуском команд в командной строке в Windows 10. Многие обычные вещи, такие как проверка связи с сервером или проверка состояния вашего сетевого коммутатора, выполняются с помощью командной строки. Если вам неудобно использовать командную строку помимо команд, которые уже написаны и должны выполняться как есть, вы, как правило, упускаете множество полезных вещей, которые можно сделать из командной строки. Один довольно частый вопрос, который возникают у новых пользователей при использовании командной строки, — как ввести имя или адрес папки или файла, в имени или пути которого есть пробел.
Вообще говоря, если вы пытаетесь запустить команду, которая включает в себя указание пути к папке или файлу, и путь неверен, то есть командная строка не может его увидеть, сообщение об ошибке не скажет вам этого. Сообщение, которое возвращает командная строка, будет зависеть от запущенной вами команды, и будет казаться, что что-то не так с командой, а не с путем, затрудняющим устранение проблемы. Исправить очень просто.
Ввод путей с пробелами
Уловка заключается в двойных кавычках. Возьмите за правило заключать все пути к файлам, которые вы вводите в командной строке, в двойные кавычки.
Следующая команда не будет запущена. В пути есть пробел, и в этом месте команда прерывается, и командная строка думает, что вы ввели новую команду или параметр.
XCOPY C:UsersfatiwOneDriveDesktopMy test Folder D: /T /E
Эта команда будет работать. Единственная разница между ними заключается в том, что во втором пути путь заключен в двойные кавычки.
XCOPY "C:UsersfatiwOneDriveDesktopMy test Folder" D: /T /E
Даже если на вашем пути нет места, рекомендуется заключить его в двойные кавычки и выработать привычку делать это. Если вы забудете или столкнетесь с более длинным путем, такую простую ошибку будет сложно обнаружить.
Это справедливо для всех приложений командной строки, которые вы используете в Windows 10. В PowerShell любую команду, требующую ввода пути к файлу или папке, следует заключать в двойные кавычки. Если в пути нет места, все будет в порядке, но если оно есть, команда больше не будет запускаться, это о выработке привычки, чтобы избавить себя от проблем позже.
Что вы думаете об этой статье?
В средах командной строки, таких как командная строка Windows и PowerShell, для разделения команд и аргументов используются пробелы, но имена файлов и папок также могут содержать пробелы. Чтобы указать путь к файлу с пробелом внутри, вам нужно «экранировать» его.
Почему нужно избегать пробелов
«Побег» персонажа меняет его значение. Например, экранирование пробела заставит оболочку рассматривать его как стандартный пробел, а не как специальный символ, разделяющий аргументы командной строки.
Например, предположим, что у вас есть текстовый файл, содержимое которого вы хотите просмотреть. Вы можете сделать это с помощью команды type. Предполагая, что текстовый файл находится в C: TestFile.txt, следующая команда в командной строке покажет его содержимое:
type C:TestFile.txt
Отлично. А что, если у вас есть тот же файл в папке C: Test FolderTest File.txt? Если вы попробуете выполнить команду ниже, это не сработает — эти пробелы в пути к файлу мешают.
type C:Test FolderTest File.txt
Командная строка считает, что вы пытаетесь найти файл с именем C: Test, и сообщает, что «не может найти указанный путь».
Есть три разных способа избежать путей к файлам в Windows:
Заключив путь (или его части) в двойные кавычки (”).
Добавляя символ вставки (^) перед каждым пробелом. (Это работает только в командной строке / CMD, и, похоже, не работает с каждой командой.)
Путем добавления серьезного ударения (`) перед каждым пробелом. (Это работает только в PowerShell, но работает всегда.)
Мы покажем вам, как использовать каждый метод.
Заключите путь в кавычки («)
Стандартный способ убедиться, что Windows правильно обрабатывает путь к файлу, — заключить его в двойные кавычки («)». Например, в нашем примере команды, приведенном выше, мы бы просто запустили следующее:
type "C:Test FolderTest File.txt"
Вы можете заключить части пути в кавычки, если хотите. Например, предположим, что в этой папке есть файл с именем File.txt. Вы можете запустить следующее:
type C:"Test Folder"File.txt
Однако в этом нет необходимости — в большинстве случаев вы можете просто заключить весь путь в кавычки.
Это решение работает как в традиционной среде командной строки (CMD), так и в Windows PowerShell.
Используйте символ каретки для выхода из пробелов (^)
В командной строке символ каретки (^) теоретически позволяет избежать пробелов. Просто добавьте его перед каждым пробелом в имени файла. (Вы найдете этот символ в числовом ряду на клавиатуре. Чтобы ввести символ каретки, нажмите Shift + 6.)
Вот в чем проблема: хотя это должно работать, а иногда и работает, это работает не всегда. Командная строка обрабатывает этот символ странно.
Например, с помощью нашей примерной команды вы запустите следующую команду, но она не сработает:
type C:Test^ FolderTest^ File.txt
С другой стороны, если мы попытаемся открыть наш файл напрямую, введя его путь в командную строку, мы увидим, что символ каретки правильно экранирует пробелы:
C:Test^ FolderTest^ File.txt
Итак, когда это работает? Что ж, согласно нашим исследованиям, он работает с одними приложениями, а с другими нет. Ваш пробег может варьироваться в зависимости от команды, которую вы используете. Командная строка обрабатывает этот символ странно. Если вам интересно, попробуйте с любой командой, которую вы используете, — она может работать, а может и не работать.
Для единообразия мы рекомендуем использовать двойные кавычки в командной строке или переключиться на PowerShell и использовать метод серьезного акцента ниже.
Используйте символ серьезного ударения (`)
PowerShell использует знак ударения (`) в качестве escape-символа. Просто добавьте его перед каждым пробелом в имени файла. (Вы найдете этот символ над клавишей Tab и под клавишей Esc на клавиатуре.)
type C:Test` FolderTest` File.txt
Каждый знак серьезного акцента сообщает PowerShell, что нужно избегать следующего символа.
Обратите внимание, что это работает только в среде PowerShell. Вам нужно будет использовать символ каретки в командной строке.
Если вы знакомы с UNIX-подобными операционными системами, такими как Linux и macOS, вы, возможно, привыкли использовать символ обратной косой черты () перед пробелом, чтобы его избежать. Windows использует это для обычных путей к файлам, поэтому это не работает — символы вставки (^) и серьезного ударения (`) являются версией обратной косой черты Windows в зависимости от того, какую оболочку командной строки вы используете.
string[] urls = txtBoxUrls.Text.ToString().Split(new char[] { '\n', '\r' });
string s1;
string text;
foreach (string s in urls)
{
if (s.Contains(" "))
{
s1 = @"""" + s + @"""";
text += s1 + " ";
}
else
{
text += s + " ";
}
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = @"wk.exe";
proc.StartInfo.Arguments = text + " " + txtFileName.Text;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
//Get program output
string strOutput = proc.StandardOutput.ReadToEnd();
//Wait for process to finish
proc.WaitForExit();
Например, если путь к файлу указан в txtBoxUrls, это “C:\VS2008\Projects\web2pdf\web2pdf\bin\Release\Test Page.htm”, программа не будет работать. Этот путь к файлу с двойными кавычками будет работать в командной строке Windows (я не использую графический интерфейс).
Каким будет решение.
15 нояб. 2010, в 16:09
3 ответа
proc.StartInfo.Arguments = text + " " + txtBoxUrls.Text + " " + txtFileName.Text;
В этой строке text
уже содержится правильно указанная версия ваших строк txtBoxUrls. Почему вы добавляете их снова в некотируемую форму (+ txtBoxUrls.Text
)? Если я правильно понял ваш код, то должно работать следующее:
proc.StartInfo.Arguments = text + " " + txtFileName.Text;
На самом деле, поскольку txtFileName.Text
может содержать пробелы, вы должны также указать его, просто чтобы убедиться:
proc.StartInfo.Arguments = text + " \"" + txtFileName.Text + "\"";
(или, используя ваш синтаксис:)
proc.StartInfo.Arguments = text + @" """ + txtFileName.Text + @"""";
wk.exe "C:\VS2008\Projects\web2pdf\web2pdf\bin\Release\Test Page.htm"
Кроме того, в этой строке слишком много кавычек. Четыре, а не три:
s1 = @"""" + s + @"""";
Ещё вопросы
Как использовать пробелы в командной строке Windows?
cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*
Ответ 1
Одиночные кавычки в этом случае не будут выполняться. Вы должны добавить кавычки вокруг каждого пути, а также заключить целую команду в кавычки:
cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""
Ответ 2
Я просто выяснил, что для случая, когда путь включает использование символов пробела, например, когда мне нужно получить доступ к приложению xyz
расположение которого:
C:\Program Files\ab cd\xyz.exe
Чтобы запустить это из командной строки Windows, вам нужно использовать
C:\"Program Files"\"ab cd"\xyz.exe
"C:\Program Files\ab cd\xyz.exe"
Ответ 3
Если двойные кавычки не решают проблему, попробуйте, например,
dir /X ~1 c:\
получить список альтернативных имен файлов или каталогов. Пример вывода:
11/09/2014 12:54 AM 8,065 DEFAUL~1.XML Default Desktop Policy.xml
06/12/2014 03:49 PM <DIR> PROGRA~1 Program Files
10/12/2014 12:46 AM <DIR> PROGRA~2 Program Files (x86)
Теперь используйте короткие 8-символьные имена файлов или папок в 5-м столбце, например, PROGRA ~ 1 или DEFAUL ~ 1.XML, в своих командах. Например:
set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45
Ответ 4
Закройте пути, содержащие пробелы с двойными кавычками.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Ответ 5
Попробуйте предоставить сложные имена путей в двойных кавычках (и включите расширения файлов в конце для файлов.)
call "C:\example file.exe"
cd "C:\Users\User Name\New Folder"
Он применим и во всех подобных проблемах с адресом.
И одна хорошая вещь, cmd не чувствительна к регистру, например bash. Таким образом, “New fiLE.txt” и “new file.TXT” похожи на него.
Ответ 6
Я предпочитаю заключить команду в ()
, которая действительна batch
, что делает ее более легкой для чтения:
cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")
Ответ 7
set "CMD=C:\Program Files (x86)\PDFtk\bin\pdftk"
echo cmd /K ""%CMD%" %D% output trimmed.pdf"
start cmd /K ""%CMD%" %D% output trimmed.pdf"
это работало для меня в пакетном файле
Ответ 8
Вам следует попробовать использовать кавычки.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
Ответ 9
Просто добавьте кавычку
Надеюсь, это решено!
Ответ 10
Он может решить эту проблему командой cd, эта команда понимает пробелы без двойных кавычек, и вы можете вызвать любую программу таким образом, например:
C:\Windows\system32 > cd c:\Program Files\MongoDB\Server\3.2\bin
c:\Program Files\MongoDB\Server\3.2\bin > mongo
теперь приглашение командной строки mongo.exe
Конфигурационный файл нуждается в позиции другого файла,
но этот файл находится в папке “C:\Program Files”,
и путь с пространством в нем не распознается,
Есть ли другой способ указать местоположение без пробела в нем?
Ответ 1
вы должны иметь возможность использовать
- “c:\Program Files” (обратите внимание на кавычки)
- c:\PROGRA ~ 1 (обозначение короткого имени)
Попробуйте c: \ > dir/x (в оболочке dos)
Отображаются короткие имена сгенерированный для имен файлов не-8dot3. Формат имеет формат /N с короткое имя, вставленное перед длинным имя. Если короткое имя отсутствует, пробелы отображаются на своем месте.
Ответ 2
Никогда не указывайте это местоположение жестко. Используйте переменные среды %ProgramFiles%
или %ProgramFiles(x86)%
.
При их указании всегда указывайте в кавычках, потому что Microsoft может содержать в них пробелы или другие специальные символы.
"%ProgramFiles%\theapp\app.exe"
"%ProgramFiles(x86)%\theapp\app.exe"
Кроме того, каталог может быть написан на языке, который вы не знаете. http://www.samlogic.net/articles/program-files-folder-different-languages.htm
>set|findstr /i /r ".*program.*="
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
Используйте эти команды, чтобы найти значения на компьютере. НЕ ЗАПИСЫВАЙТЕ их в программу или файл-скрипт .bat или .cmd. Используйте переменную.
set | findstr /R "^Program"
set | findstr /R "^Common"
Ответ 3
Используйте следующие обозначения:
- Для “ C:\Program Files” используйте “ C:\PROGRA ~ 1”
- Для “ C:\Program Files (x86)” используйте “ C:\PROGRA ~ 2”
Используйте переменные окружения % ProgramFiles% и % ProgramFiles (x86)%
Ответ 4
Ответ 5
В оболочке Windows (при использовании CMD.exe) используется% ProgramFiles%, чтобы указать папку Program Files, независимо от того, где она находится. Так как стандартный файловый менеджер Windows учитывает такие переменные среды, как это, если программа была хорошо написана, она должна поддерживать это.
Кроме того, можно было бы использовать относительные адреса. Если установленная вами программа установлена правильно, она уже должна находиться в папке Program Files, поэтому вы можете просто ссылаться на файл конфигурации как. \Config_file.txt, если она находится в том же каталоге, что и программа, или.. \other_program\config_file.txt, если его в каталоге отличается от другой программы. Это применимо не только к Windows, но и практически для каждой современной операционной системы и будет работать правильно, если у вас установлен “Start In”, или вы запускаете его непосредственно из своей папки.
Ответ 6
Должен быть способ использования полного пути c:\program files
. Часто он включает инкапсуляцию строки в кавычки. Например, в командной строке windows;
c:\program files\Internet Explorer\iexplore.exe
не запускается Internet Explorer, но
"c:\program files\Internet Explorer\iexplore.exe"
Ответ 7
Вы можете попробовать использовать короткое имя файла (возможно, c:\PROGRA~1
), но вы действительно не рассказываете нам много деталей.
Другой возможной возможностью было бы поставить кавычки по всему пути, “c:\program files\Path\configfile.ini”
Ответ 8
Иногда вы можете указать имя файла.
"C:\Program Files\Something"
Некоторые программы будут терпеть кавычки. Поскольку вы не предоставляли какую-либо конкретную программу, невозможно определить, будут ли кавычки работать для вас.
Ответ 9
Попробуйте окружить путь в кавычках. i.e “C:\Program Files\Appname\config.file”
Ответ 10
Вы можете использовать следующие методы для указания C:\Program Files без пробела для программ, которые не могут обрабатывать пробелы в путях к файлам:
'Path to Continuum Reports Subdirectory - Note use DOS equivalent (no spaces)
RepPath = "c:\progra~1\continuum_reports\" or
RepPath = C:\Program Files\Continuum_Reports 'si es para 64 bits.
' Path to Continuum Reports Subdirectory - Note use DOS equivalent (no spaces)
RepPath = "c:\progra~2\continuum_reports\" 'or
RepPath = C:\Program Files (x86)\Continuum_Reports 'si es para 32 bits.
Ответ 11
Вы можете попробовать:
C:\PROGRA~1
Ответ 12
c:\progra~1
В 64-битных окнах, возможно
c:\progra~2
Ответ 13
Я думаю, что другие сообщения ответили на вопрос, но только некоторые интересные для вашей информации (из командной строки):
dir c: \/ad/x
Это предоставит список только каталогов, а также предоставит их “короткие имена”.
Ответ 14
Существует много способов избежать проблем с пространством, некоторые из них уже упоминались:
В командной строке, в определении ярлыка, в файлах bat и в большинстве программ, используя путь api в Windows, вы можете попробовать окружить путь к вашему файлу двойными кавычками, подобными этому:
PATH="C:\Program Files\MyApp\MyFile.dat"
Для той же категории программного обеспечения вы также можете использовать короткое имя (унаследованное от DOS и ограниченное до 8 символов для каждого уровня
PATH=C:\PROGRA~1\MyApp\MyFile.dat
В файлах свойств java и вам нужно либо избежать пробела, добавив \before (обратите внимание, что вам также нужно сбежать\или заменить его на /):
path=c:/Program\ Files/Myapp/MyFile.dat
or
path=c:\Program\ Files\MyApp\MyFile.dat
Ответ 15
В качестве альтернативы другим ответам вы можете использовать символические ссылки.
Сначала создайте символическую ссылку и установите приложение на основе ссылки. (В зависимости от случая это может быть проще сделать, например, когда приложение имеет в своем коде n упоминаний целевой папки)
Символическая ссылка создаст что-то похожее на ярлык для папки, но другие приложения видят ее как фактическую папку.
Вот как вы это делаете:
- Запустите
cmd
от имени администратора - Используйте эту команду:
mklink /D "C:\LinkToProgramFiles" "C:\Program Files"
А затем вы начинаете использовать “C:\LinkToProgramFiles” в приложениях, которые не могут обрабатывать пробелы. (Эту ссылку можно увидеть в проводнике Windows как папку с символом ярлыка)
Будьте очень осторожны, чтобы не создавать круговые ссылки, если вы слишком много играете с этим.
Ответ 16
Использовать сгенерированное короткое имя (C:\Progra ~ 1) или окружать путь кавычками.
Ответ 17
Вы можете просто создать папку ProgramFiles на локальном D или локальном C, чтобы установить те приложения, которые могут быть установлены в имя папки, в которой есть SPACES/Characters.
Пробелы в приглашении к одобрению (в строке командного кода оболочки VBA)
У меня была очень похожая проблема, которая в конечном итоге оказалась пробелом в командной строке при автоматизации через VBA для получения содержимого из командного окна в текстовый файл. Эта тема была одной из многих, которые я поймал по пути, и которые не совсем помогли мне найти решение.
Таким образом, это может помочь другим решить аналогичную проблему: поскольку синтаксис с кавычками всегда сложно понять, я думаю, что показ некоторых конкретных примеров всегда полезно. Дополнительная проблема, с которой вы сталкиваетесь при использовании командной строки в VBA через оболочку, заключается в том, что строка кода часто не вызывает ошибок, когда что-то идет не так: на самом деле, мигание черного окна приветствия вводит в заблуждение, заставляя думать, что что-то было сделано.
C: \ Папка Alans \ test1.txt ( https://imgur.com/FELSdB6 )
Пробел в названии папки дает проблему.
Что-то вроде этого будет работать, если папка AlansFolder существует.
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub
Это не сработает. (Это не ошибка).
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub
Включение пар цитат вокруг пути заставит его работать
Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub
(Кстати, если текстового файла не существует, то он будет создан).
Оглядываясь назад, мы можем видеть, что мое решение действительно приблизительно связано с некоторыми уже данными.
Преобразуя эту строку кода в заданную вручную команду, мы получили бы
ipconfig /all > "C:\Alans Folder\test1.txt"
Кажется, это работает
Это также работает
ipconfig /all > C:\AlansFolder\test1.txt
ipconfig /all > C:\Alans Folder\test1.txt
cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""
Я пытаюсь запустить эмулятор Android с поддержкой SD-карты из Windows cmd.
emulator -sdcard C:/Documents and Settings/User/sdcard.img -avd avd_tablet
Это не работает: недопустимый параметр командной строки: и
emulator -sdcard C:/Documents^ and^ Settings/User/sdcard.img -avd avd_tablet
Это не работает с “^”: недопустимый параметр командной строки: and^
emulator -sdcard "C:/Documents and Settings/User/sdcard.img" -avd avd_tablet
Он не работает с кавычками: недопустимый параметр командной строки: и
emulator -sdcard C:/Documents\ and\ Settings/User/sdcard.img -avd avd_tablet
Он не работает с экранированием обратной косой черты: недопустимый параметр командной строки: и
emulator -sdcard C:/"Documents and Settings"/User/sdcard.img -avd avd_tablet
Он не работает с частичным экранированием обратной косой черты: недопустимый параметр командной строки: и
2 ответы
As Google описывает, необходимо указать относительный путь к образу SD-карты.
Если ваш SDK установлен в C:\Documents and Settings\User\Android SDK, запустите эмулятор следующим образом:
emulator -sdcard "..\..\..\sdcard.img" -avd avd_tablet
ответ дан 29 окт ’15, 21:10
emulator -sdcard "C:\Documents and Settings\User\sdcard.img" -avd avd_tablet
должно сработать. Если это не так, то используемая вами программа не работает, и вам, возможно, придется поискать, как передать ей пути с пробелами. Командная строка Windows (в отличие от оболочек Unix) не анализирует параметры команд; программа просто получает строку с полной командной строкой и должна разобраться сама.
Создан 17 сен.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
windows
android-emulator
cmd
or задайте свой вопрос.
ОБНОВИТЬ:
Ну, изначально я опубликовал решение более сложной проблемы, чтобы получить полное разделение любой строки с любым разделителем (просто изменив обезвоживает). Я прочитал больше принятых решений, чем то, что хотел OP, извините. Думаю, на этот раз я соблюдаю первоначальные требования:
@echo off
IF [%1] EQU [] echo get n ["user_string"] & goto :eof
set token=%1
set /a "token+=1"
set string=
IF [%2] NEQ [] set string=%2
IF [%2] EQU [] set string="AAA BBB CCC DDD EEE FFF"
FOR /F "tokens=%TOKEN%" %%G IN (%string%) DO echo %%~G
Другая версия с улучшенным пользовательским интерфейсом:
@echo off
IF [%1] EQU [] echo USAGE: get ["user_string"] n & goto :eof
IF [%2] NEQ [] set string=%1 & set token=%2 & goto update_token
set string="AAA BBB CCC DDD EEE FFF"
set token=%1
:update_token
set /a "token+=1"
FOR /F "tokens=%TOKEN%" %%G IN (%string%) DO echo %%~G
E:\utils\bat>get
USAGE: get ["user_string"] n
E:\utils\bat>get 5
FFF
E:\utils\bat>get 6
E:\utils\bat>get "Hello World" 1
World
Это командный файл для разделения каталогов пути:
@echo off
set string="%PATH%"
:loop
FOR /F "tokens=1* delims=;" %%G IN (%string%) DO (
for /f "tokens=*" %%g in ("%%G") do echo %%g
set string="%%H"
)
if %string% NEQ "" goto :loop
@echo off
set string="%PATH%"
:loop
FOR /F "tokens=1* delims=;" %%G IN (%string%) DO set line="%%G" & echo %line:"=% & set string="%%H"
if %string% NEQ "" goto :loop
@echo off
set string="%PATH%"
:loop
FOR /F "tokens=1* delims=;" %%G IN (%string%) DO CALL :sub "%%G" "%%H"
if %string% NEQ "" goto :loop
goto :eof
:sub
set line=%1
echo %line:"=%
set string=%2
Пробелы в значениях переменных
С переменной, в значении которой есть один или несколько пробелов, можно работать как и обычно..
Set PathBase=c:\Program Files\Firefox Set StartProcess=%PathBase%\Firefox.exe
Но не всегда это работает и в тех случаях, когда по синтаксису пробел не должен находиться в этом месте, тогда используют обрамляющие кавычки
Set PathBase=c:\Program Files\Firefox echo "%PathBase%\profiles.ini"
Но в некоторых случаях и тот и тот вариант может не подойти, тогда уж наверняка вас выручит иной вариант с кавычками, мой любимый
Set "PathBase=c:\Program Files\Firefox" echo %PathBase%\profiles.ini
Разрыв строки текста, перенос строки команд
Если текст вашей команды слишком длинный, то это делает сценарий менее наглядным и удобочитаемым. Символ должен быть последним в строке и означает, что следующая строка является продолжением текущей. Возможно разбиение команд более, чем на две строки. Заметим, при печати в консоли на выходе будет все же одна строка. Данный способ применяется только для более удобного восприятия и форматирования длинного кода листинга.
echo ^ Этот способ работает^ не только для текста^ но и для команд
Экранирование служебных спецсимволов
В командном языке Windows существует некоторый набор символов с высоким приоритетом, которые всегда трактуются как спецсимволы. К ним, в частности, относятся:
- Операторы перенаправления ввода-вывода <, >, >>.
- Оператор конвейера |.
- Операторы объединения команд ||, & и &&.
- Оператор разыменования переменной %…%.
В случае со знаком процента решение довольно хорошо известно и состоит в удвоении этого символа. Для других символов тут нам и придет на помощь уже известный знак домика – символ ^.
:: Это не сработает, вызовет ошибку - > was unexpected at this time. echo <html> :: А это сработает echo ^<html^>
Этим же символом домика можно экранировать и любой другой символ, включая самого себя.
сем доброго здравия!
Многие пользователи (как я смотрю) часто недооценивают такой знак, как (и ставят их очень редко).
Кстати, в Мире существует более десятка кавычек! Однако, в заметке я хочу остановиться только на тех, которые наиболее часто встречаются у нас:
Собственно, ниже покажу как можно проставить тот или иной вид кавычек. Заметка относится к справочным, рекомендую в закладки. 👆
- Способы простановки кавычек
- Елочки
- Лапки
- Компьютерные
- Марровские (одинарные) кавычки
- 📌 На телефоне под Android
→ Задать вопрос | дополнить