Как я повторяю TAB char в командной строке

21

В пакетном файле Windows, как правильно отобразить TAB?

echo A<TAB>B<TAB>C

Я знаю, что могу вводить TABсимвол между записями, но большинство редакторов отображают его как последовательность пробелов. Некоторые даже автоматически конвертируют их в пробелы, я ищу что-то более наглядное.

Уточнение: <TAB> здесь означает настоящую вкладку char. Я ищу C \ T в пакетном скрипте.

Haas
источник
Вы пробовали редакторы и нашли «большинство» отображаемых вкладок в виде последовательности пробелов? какие это? Первый редактор, который я бы попробовал, это блокнот, который отображает вкладки в виде вкладок.
Барлоп

Ответы:

17

Просто нажмите TABклавишу в редакторе, который его поддерживает, например, в Блокноте.

Итак, если я введу это:

@echo 1<TAB>b
@echo 2<TAB>c

Это приведет к этому:

введите описание изображения здесь

Тамара Вийсман
источник
1
Это работает, и это то, как я это делаю. Проблема в том, что любой, кто редактирует файл, может заменить странно расположенную вкладку, не заметив, что она намеренно.
Haas
5
@ Хаас: Как насчет того, set TAB=<TAB>чтобы уточнить, что это символ табуляции, а затем использовать %TAB%потом? Насколько я знаю, echoтолько разборы %...%. Насколько я знаю, нет встроенного символа табуляции ...
Тамара Вийсман
@ barlop: Что ...............? xD
Тамара Вийсман
1
Я использую предложение Тома Вейсмана, но с цитатой. SET "TAB= "где пробел на самом деле является символом табуляции (0x09). Это явно неоптимально, но, похоже, это лучшая альтернатива, которую я видел.
горит
Чтобы получить символ TAB при нажатии клавиши TAB, необходимо запустить командную строку, например, cmd /F:OFFотключить автозаполнение файла / dir. имена ...
aschipfl
11

Одним из решений является то, что вы можете установить переменную среды с именем TAB и установить значение для фактического символа табуляции. Возможно, вам придется скопировать и вставить символ табуляции из текстового редактора, чтобы правильно его ввести. Я пробовал это в Windows 7, и это работает.

В вашем пакетном файле просто используйте% TAB%, и он вставит символ табуляции.

Тимоти К. Куинн
источник
3
+1 кто-то проголосовал против вас, может быть, если этот ответ можно найти где-то в комментариях. Но ответы должны быть найдены в ответах , а не в комментариях , поэтому в upvote от меня
miracle173
3

Подобные ограничения являются одной из причин использования Windows Script Host или Powershell.

Windows Script Host поставляется (поставляется) с каждой версией Windows начиная с 98 и может быть установлен на 95 и NT 4.

Создайте файл с именем demo.vbsи вставьте в него следующую строку и сохраните его.

WScript.StdOut.WriteLine "a" + chr(9) + "b"

Теперь из каталога, в котором вы его сохранили, введите:

demo.vbs

и вы должны увидеть:

a       b

Вы также можете сделать

cscript demo.vbs

что позволит вам использовать ключи командной строки, которые cscriptобеспечивает.

(Проверено на Vista.)

Приостановлено до дальнейшего уведомления.
источник
Powershell был бы очень хорош, но он не всегда доступен ...
Haas
@ Хаас: Пожалуйста, смотрите мой отредактированный ответ.
Приостановлено до дальнейшего уведомления.
Спасибо Деннис. Я бы хотел использовать что-то более новое и лучшее, но у меня есть один вариант для этого конкретного сценария.
Haas
@ Хаас: Я просто подумал, что «я ищу что-то более визуальное» было требованием.
Приостановлено до дальнейшего уведомления.
1

Вот однострочное решение с использованием powershell в командном файле:

Powershell -noprofile -nologo -command Write-Output "a`tb`tc"

`t - символ табуляции

stangm
источник
Ах, PowerShell является табу, если кто-то уже сказал это.
Pacerier
0

Пока вы используете редактор, который сохраняет вкладки без изменений, вы можете скачать sed и поместить его в свой путь, а затем вы можете сделать что-то вроде:

echo "A`B`C" | sed 's/\t/<TAB>/g'

где каждый `стоит за реальную вкладку.


далеко от дома
источник
-1

Основной способ, но не очень известный, это отправить TABв CMD с помощью простого ASCII chr (9). Этот специальный символ можно вызвать, нажав 9 на цифровой клавиатуре, одновременно удерживая нажатой левую клавишу ALT. Должен появиться символ, который выглядит как жирный O, в противном случае включается какое-либо кодирование или отображение клавиатуры.

Если для вашего редактора задана обычная кодировка ASCII или двоичный режим, вы можете сохранить эту последовательность в файл. Если у вас его нет, попробуйте ввести CMD:

ECHO a (sequence LALT+9) b > tabchk.bat tabchk.bat

psiedlaczek
источник
2
Чем он лучше / отличается от простого нажатия на вкладку?
Máté Juhász