Bagaimana cara menggemakan char TAB pada command prompt

21

Pada file batch windows, apa cara yang tepat untuk echo TAB?

echo A<TAB>B<TAB>C

Saya tahu saya bisa mengetikkan TABchar di antara entri, tetapi kebanyakan editor akan menampilkannya sebagai urutan spasi. Beberapa bahkan akan secara otomatis mengubahnya menjadi spasi, saya mencari sesuatu yang lebih visual.

Klarifikasi: di <TAB> sini berarti tab real char. Saya mencari C \ t dalam skrip batch.

Haas
sumber
Anda mencoba editor dan menemukan tab tampilan "paling" sebagai urutan spasi? yang mana itu? Editor pertama yang saya coba adalah notepad dan yang menampilkan tab sebagai tab.
barlop

Jawaban:

17

Tekan saja TABtombol di editor yang mendukungnya, Notepad misalnya.

Jadi, jika saya memasukkan ini:

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

Ini akan menghasilkan ini:

masukkan deskripsi gambar di sini

Tamara Wijsman
sumber
1
Ini bekerja, dan itulah cara saya melakukannya. Masalahnya adalah bahwa siapa pun yang mengedit file mungkin mengganti tab yang diposisikan secara aneh tanpa sadar itu disengaja.
Haas
5
@ Haas: Bagaimana set TAB=<TAB>menjelaskan bahwa itu adalah karakter tab dan kemudian menggunakan %TAB%setelahnya? Sejauh yang saya sadari, echohanya mengurai %...%. Tidak ada karakter tab bawaan sejauh yang saya ketahui ...
Tamara Wijsman
@barlop: Apa ...............? xD
Tamara Wijsman
1
Saya menggunakan saran Tom Wijsman, tetapi dengan mengutip. SET "TAB= "di mana spasi sebenarnya adalah karakter TAB (0x09). Ini jelas suboptimal, tetapi tampaknya menjadi alternatif terbaik yang pernah saya lihat.
menyala
Untuk mendapatkan karakter TAB saat menekan tombol TAB, Anda harus memulai command prompt seperti cmd /F:OFFmenonaktifkan pelengkapan otomatis file / dir. nama ...
aschipfl
11

Salah satu solusinya adalah Anda dapat mengatur variabel lingkungan yang disebut TAB dan mengatur nilai ke karakter tab yang sebenarnya. Anda mungkin perlu menyalin dan menempelkan karakter tab dari editor teks untuk memasukkannya dengan benar. Saya sudah mencoba ini di Windows 7 dan berhasil.

Dalam file batch Anda, cukup gunakan% TAB% dan itu akan memasukkan karakter tab.

Timothy C. Quinn
sumber
3
+1 sombody menurunkan Anda mungkin jika jawaban ini dapat ditemukan di suatu tempat di komentar. Tetapi jawaban harus ditemukan dalam jawaban dan bukan dalam komentar karena itu suara
positif
3

Keterbatasan seperti ini adalah beberapa alasan untuk menggunakan Windows Script Host atau Powershell.

Windows Script Host dikirimkan (dikirimkan) dengan setiap versi Windows mulai 98 dan dapat diinstal pada 95 dan NT 4.

Buat file yang dipanggil demo.vbsdan tempel baris berikut di dalamnya dan simpan.

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

Sekarang, dari direktori tempat Anda menyimpannya, masukkan:

demo.vbs

dan Anda akan melihat:

a       b

Anda juga bisa melakukannya

cscript demo.vbs

yang akan memungkinkan Anda untuk menggunakan switch baris perintah yang cscriptmenyediakan.

(Diuji pada Vista.)

Dijeda sampai pemberitahuan lebih lanjut.
sumber
Powershell akan sangat menyenangkan, tetapi tidak selalu tersedia ...
Haas
@ Haas: Silakan lihat jawaban saya yang diedit.
Dijeda sampai pemberitahuan lebih lanjut.
Terima kasih Dennis. Saya ingin menggunakan sesuatu yang lebih baru dan lebih baik, tetapi itu satu-satunya pilihan yang saya miliki untuk skrip khusus ini.
Haas
@ Haas: Saya hanya berpikir bahwa "Saya mencari sesuatu yang lebih visual" adalah syarat.
Dijeda sampai pemberitahuan lebih lanjut.
1

Berikut ini adalah solusi satu baris menggunakan PowerShell dalam file batch:

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

the `t adalah karakter tab

stangm
sumber
Ah, PowerShell itu tabu kecuali seseorang sudah mengatakannya.
Pacerier
0

Selama Anda menggunakan editor yang membuat tab utuh, Anda bisa men-download sed dan meletakkannya di jalan Anda, dan kemudian Anda bisa melakukan sesuatu seperti:

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

di mana masing-masing `berdiri untuk tab nyata.


jauh dari rumah
sumber
-1

Cara dasar, tetapi tidak terkenal, adalah mengirim TABke CMD dengan menggunakan ASCII chr (9). Karakter khusus ini dapat dipanggil dengan menekan 9 pada keyboard numerik sambil menahan Left-ALT dalam waktu yang bersamaan. Karakter yang terlihat sebagai huruf O tebal akan muncul, jika tidak semacam encoding atau pemetaan keyboard aktif.

Jika Editor Anda disetel ke pengkodean ASCII biasa, atau mode biner, Anda dapat menyimpan urutan ini ke file. Jika Anda tidak memilikinya, coba ketikkan CMD:

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

psiedlaczek
sumber
2
Bagaimana ini lebih baik / berbeda dari sekadar menekan tab itu sendiri?
Máté Juhász