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


21

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

echo A<TAB>B<TAB>C

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

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


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

Ответы:


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 - символ табуляции


Ах, 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


2
Чем он лучше / отличается от простого нажатия на вкладку?
Máté Juhász
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.