Làm cách nào để lặp lại một char TAB trên dấu nhắc lệnh


21

Trên tệp bó của windows, cách thích hợp để lặp lại a là TABgì?

echo A<TAB>B<TAB>C

Tôi biết tôi có thể nhập TABchar giữa các mục, nhưng hầu hết các biên tập viên sẽ hiển thị nó dưới dạng một chuỗi các khoảng trắng. Một số thậm chí sẽ tự động chuyển đổi chúng thành không gian, tôi đang tìm kiếm một cái gì đó trực quan hơn.

Làm rõ: <TAB> ở đây có nghĩa là char thực sự. Tôi đang tìm kiếm C \ t trong một tập lệnh bó.


Bạn đã thử các trình soạn thảo và tìm thấy tab hiển thị "nhất" dưới dạng một chuỗi các khoảng trắng? đó là những cái gì Trình chỉnh sửa đầu tiên tôi đã thử là notepad và hiển thị các tab dưới dạng các tab.
barlop

Câu trả lời:


17

Chỉ cần nhấn TABphím trong một trình soạn thảo hỗ trợ nó, Notepad chẳng hạn.

Vì vậy, nếu tôi nhập này:

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

Nó sẽ dẫn đến điều này:

nhập mô tả hình ảnh ở đây


1
Nó hoạt động, và đó là cách tôi đang làm. Vấn đề là bất kỳ ai chỉnh sửa tệp đều có thể thay thế một tab có vị trí kỳ lạ mà không chú ý đến nó.
Haas

5
@Haas: Điều gì set TAB=<TAB>sẽ làm rõ rằng đó là ký tự tab và sau đó sử dụng %TAB%sau đó? Theo như tôi biết, echochỉ phân tích %...%. Không có ký tự tab tích hợp nào theo như tôi biết ...
Tamara Wijsman

@barlop: Cái gì ...............? xD
Tamara Wijsman

1
Tôi sử dụng gợi ý của Tom Wijsman, nhưng với trích dẫn. SET "TAB= "trong đó khoảng trắng thực sự là ký tự TAB (0x09). Nó rõ ràng là không tối ưu, nhưng nó dường như là sự thay thế tốt nhất mà tôi đã thấy.
thắp sáng

Để có được ký tự TAB khi nhấn phím TAB, bạn phải bắt đầu nhắc lệnh như cmd /F:OFFđể tắt tự động hoàn thành tệp / thư mục. tên ...
aschipfl

11

Một giải pháp là bạn có thể đặt biến môi trường gọi là TAB và đặt giá trị thành ký tự tab thực tế. Bạn có thể cần phải sao chép và dán ký tự tab từ trình soạn thảo văn bản để nhập chính xác. Tôi đã thử điều này trong Windows 7 và nó hoạt động.

Trong tệp bó của bạn, chỉ cần sử dụng% TAB% và nó sẽ chèn một ký tự tab.


3
+1 sombody đã bình chọn cho bạn xuống có thể nếu câu trả lời này có thể được tìm thấy ở đâu đó trong các bình luận. Nhưng câu trả lời nên được tìm thấy trong các câu trả lời chứ không phải trong các bình luận do đó là một upvote từ tôi
miracle173

3

Những hạn chế như đây là một trong những lý do để sử dụng Windows Script Host hoặc Powershell.

Windows Script Host đã xuất xưởng ( giao hàng ) với mọi phiên bản Windows từ 98 trở đi và có thể được cài đặt trên 95 và NT 4.

Tạo một tệp được gọi demo.vbsvà dán dòng sau vào đó và lưu nó.

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

Bây giờ, từ thư mục mà bạn đã lưu nó, hãy nhập:

demo.vbs

và bạn sẽ thấy:

a       b

Bạn cũng có thể làm

cscript demo.vbs

sẽ cho phép bạn sử dụng các công tắc dòng lệnh cscriptcung cấp.

(Đã thử nghiệm trên Vista.)


Powershell sẽ rất tuyệt, nhưng không phải lúc nào cũng có sẵn ...
Haas

@Haas: Xin vui lòng xem câu trả lời chỉnh sửa của tôi.
Tạm dừng cho đến khi có thông báo mới.

Cảm ơn Dennis. Tôi thích sử dụng một cái gì đó mới hơn và tốt hơn, nhưng đó là một lựa chọn tôi có cho kịch bản cụ thể này.
Haas

@Haas: Tôi chỉ nghĩ rằng "Tôi đang tìm kiếm một cái gì đó trực quan hơn" là một yêu cầu.
Tạm dừng cho đến khi có thông báo mới.

1

Đây là giải pháp một dòng sử dụng powershell trong tệp bó:

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

`t là ký tự tab


Ah, powershell là điều cấm kỵ trừ khi ai đó đã nói điều đó.
Pacerier

0

Miễn là bạn đang sử dụng trình chỉnh sửa giữ nguyên các tab, bạn có thể tải xuống sed và đặt nó trên đường dẫn của mình, sau đó bạn có thể làm một cái gì đó như:

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

trong đó mỗi `đang đứng trong một tab thực sự.



-1

Cách cơ bản, nhưng không được biết đến nhiều, là gửi TABđến CMD bằng cách sử dụng chr ASCII đơn giản (9). Char đặc biệt này có thể được gọi bằng cách nhấn 9 trên bàn phím số trong khi giữ ALT trái cùng một lúc. Char trông như chữ O được in đậm sẽ xuất hiện, nếu không thì một số loại mã hóa hoặc ánh xạ bàn phím được bật.

Nếu Trình chỉnh sửa của bạn được đặt thành mã hóa ASCII đơn giản hoặc chế độ nhị phân, bạn có thể lưu chuỗi này vào tệp. Nếu bạn không có cái này, hãy thử đánh máy CMD:

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


2
Làm thế nào là tốt hơn / khác nhau hơn là chỉ nhấn tab chính nó?
Máté Juhász
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.