Jak echo znaku TAB w wierszu polecenia


21

W pliku wsadowym systemu Windows, jaki jest właściwy sposób na echo TAB?

echo A<TAB>B<TAB>C

Wiem, że mogę wpisać TAB znak między wpisami, ale większość redaktorów wyświetli go jako ciąg spacji. Niektórzy nawet automatycznie przekonwertują je na spacje, szukam czegoś bardziej wizualnego.

Wyjaśnienie: <TAB> tutaj oznacza prawdziwy znak tabulacji. Szukam C \ t w skrypcie wsadowym.


Próbowałeś redaktorów i znalazłeś zakładkę „większość” jako sekwencję spacji? które to są? Pierwszym edytorem, którego wypróbowałem, jest notatnik, który wyświetla karty jako karty.
— barlop

Odpowiedzi:


17

Po prostu naciśnij TABklawisz w edytorze, który go obsługuje, na przykład w Notatniku.

Więc jeśli wprowadzę to:

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

Spowodowałoby to:

wprowadź opis zdjęcia tutaj


1
To działa i tak to robię. Problem polega na tym, że każdy, kto edytuje plik, może zastąpić kartę o nieparzystej pozycji, nie zauważając, że jest to celowe.
— Haas

5
@Haas: Co powiesz set TAB=<TAB>na wyjaśnienie, że jest to znak tabulacji, a następnie użyjesz go %TAB%później? O ile mi wiadomo, echotylko parsuje %...%. O ile mi wiadomo, nie ma wbudowanego znaku tabulacji ...
— Tamara Wijsman,

@barlop: Co ...............? xD
— Tamara Wijsman

1
Korzystam z sugestii Toma Wijsmana, ale z cytowaniem. SET "TAB= "gdzie biały znak to tak naprawdę znak TAB (0x09). Jest wyraźnie nieoptymalny, ale wydaje się być najlepszą alternatywą, jaką widziałem.
— zapalił

Aby uzyskać znak TAB po naciśnięciu klawisza TAB, musisz uruchomić wiersz polecenia, cmd /F:OFFaby wyłączyć automatyczne uzupełnianie pliku / katalogu. nazwiska ...
— aschipfl,

11

Jednym z rozwiązań jest to, że można ustawić zmienną środowiskową o nazwie TAB i ustawić wartość rzeczywistego znaku tabulacji. Może być konieczne skopiowanie i wklejenie znaku tabulacji z edytora tekstowego, aby wprowadzić go poprawnie. Próbowałem tego w systemie Windows 7 i działa.

W pliku wsadowym wystarczy użyć% TAB%, aby wstawić znak tabulacji.


3
+1 sombody przegłosowało cię może, jeśli ta odpowiedź znajdzie się gdzieś w komentarzach. Ale odpowiedzi powinny znajdować się w odpowiedziach, a nie w komentarzach, dlatego głosuję ode mnie
— cud 173

3

Takie ograniczenia są jednymi z powodów używania hosta skryptów systemu Windows lub programu PowerShell.

Dostarczono hosta skryptów Windows (w zestawie) z każdą wersją systemu Windows od 98 i może być zainstalowany na 95 i NT 4.

Utwórz plik o nazwie demo.vbsi wklej w nim następujący wiersz i zapisz go.

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

Teraz z katalogu, w którym został zapisany, wprowadź:

demo.vbs

i powinieneś zobaczyć:

a       b

Możesz też zrobić

cscript demo.vbs

co pozwoli ci użyć przełączników wiersza poleceń, które cscriptudostępnia.

(Testowany na Vista).


Powershell byłby bardzo miły, ale nie zawsze jest dostępny ...
— Haas

@ Haas: Zobacz moją zredagowaną odpowiedź.
— Wstrzymano do odwołania.

Dzięki Dennis. Chciałbym użyć czegoś nowszego i lepszego, ale jest to jedyna opcja, którą mam dla tego konkretnego skryptu.
— Haas

@ Haas: Właśnie pomyślałem, że „szukam czegoś bardziej wizualnego” było wymogiem.
— Wstrzymano do odwołania.

1

Oto jedno-liniowe rozwiązanie wykorzystujące PowerShell w pliku wsadowym:

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

`t jest znakiem tabulacji


Ach, PowerShell to tabu, chyba że ktoś już to powiedział.
— Pacerier

0

Tak długo, jak używasz edytora, który utrzymuje nienaruszone karty, możesz pobrać sed i umieścić go na swojej ścieżce, a następnie możesz zrobić coś takiego:

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

gdzie każdy `oznacza prawdziwą kartę.



-1

Podstawowym sposobem, ale mało znanym, jest wysyłanie TAB do CMD przy użyciu zwykłego chr (9) ASCII. Ten specjalny znak można wywołać, naciskając 9 na klawiaturze numerycznej, trzymając jednocześnie lewy ALT. Powinien pojawić się znak, który wygląda jak pogrubiony O, w przeciwnym razie włączone jest jakieś kodowanie lub mapowanie klawiatury.

Jeśli Twój edytor został ustawiony na zwykłe kodowanie ASCII lub tryb binarny, możesz zapisać tę sekwencję w pliku. Jeśli nie masz takiego, spróbuj wpisać CMD:

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


2
W jaki sposób jest lepszy / inny niż samo naciśnięcie klawisza Tab?
— Máté Juhász
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.