ฉันจะสะท้อนอักขระ TAB บนพรอมต์คำสั่งได้อย่างไร


21

ในแฟ้มแบตช์ windows วิธีที่เหมาะสมในการสะท้อนTABคืออะไร?

echo A<TAB>B<TAB>C

ฉันรู้ว่าฉันสามารถพิมพ์TABอักขระระหว่างรายการ แต่ผู้แก้ไขส่วนใหญ่จะแสดงเป็นลำดับของช่องว่าง บางคนจะแปลงเป็นช่องว่างโดยอัตโนมัติฉันกำลังมองหาสิ่งที่มองเห็น

การชี้แจง: <TAB>ที่นี่หมายถึงอักขระแท็บที่แท้จริง ฉันกำลังมองหา C \ t ในชุดสคริปต์


คุณลองใช้บรรณาธิการและพบว่าแท็บดิสเพลย์ "ส่วนใหญ่" เป็นลำดับของช่องว่างหรือไม่ อันไหน เครื่องมือแก้ไขแรกที่ฉันได้ลองคือแผ่นจดบันทึกและแสดงแท็บเป็นแท็บ
barlop

คำตอบ:


17

เพียงกดTABปุ่มในตัวแก้ไขที่รองรับ Notepad ตัวอย่างเช่น

ดังนั้นถ้าฉันป้อนสิ่งนี้:

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

มันจะส่งผลในสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่


1
มันได้ผลและเป็นวิธีที่ฉันทำ ปัญหาคือทุกคนที่แก้ไขไฟล์อาจแทนที่แท็บที่มีตำแหน่งผิดปกติโดยสังเกตว่ามันตั้งใจ
ฮาส

5
@Haas: แล้วset TAB=<TAB>จะอธิบายได้อย่างไรว่ามันเป็นอักขระแท็บและ%TAB%หลังจากนั้นใช้? เท่าที่ผมทราบจะแยกวิเคราะห์เท่านั้นecho %...%มีในตัวไม่มีอักขระแท็บเท่าที่ฉันรู้ ...
Tamara Wijsman

@barlop: อะไร ............... xD
Tamara Wijsman

1
ฉันใช้คำแนะนำของ Tom Wijsman แต่มีการอ้างอิง SET "TAB= "โดยที่ whitespace เป็นอักขระ 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 จะดีมาก แต่ก็ไม่เสมอ availible ...
ฮาส

@Haas: โปรดดูคำตอบที่แก้ไขของฉัน
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

ขอบคุณเดนนิส ฉันชอบที่จะใช้สิ่งที่ใหม่กว่าและดีกว่า แต่ก็เป็นตัวเลือกเดียวที่ฉันมีสำหรับสคริปต์นี้โดยเฉพาะ
ฮาส

@Has: ฉันแค่คิดว่า "ฉันกำลังมองหาสิ่งที่มองเห็นได้มากขึ้น" เป็นข้อกำหนด
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

1

นี่คือโซลูชันหนึ่งบรรทัดที่ใช้ powershell ในแบตช์ไฟล์:

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

`t คืออักขระแท็บ


อ๊ะ Powerhell นั้นเป็นข้อห้ามเว้นแต่จะมีคนพูดไปแล้ว
Pacerier

0

ตราบใดที่คุณใช้เครื่องมือแก้ไขที่ทำให้แท็บไม่เสียหายคุณสามารถดาวน์โหลดsedและวางไว้บนเส้นทางของคุณจากนั้นคุณสามารถทำสิ่งต่อไปนี้

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

ที่แต่ละ `ยืนอยู่ในแท็บจริง



-1

วิธีพื้นฐาน แต่ไม่เป็นที่รู้จักกันดีคือส่งTABไปยัง CMD โดยใช้ ASCII ธรรมดา chr (9) ถ่านชนิดพิเศษนี้สามารถเรียกใช้โดยการกด 9 บนแป้นตัวเลขในขณะที่ถือ Left-ALT ในเวลาเดียวกัน อักขระที่มีลักษณะเป็นตัวหนา O ควรปรากฏขึ้นมิฉะนั้นจะมีการเข้ารหัสหรือการจับคู่แป้นพิมพ์บางประเภทอยู่

หากตัวแก้ไขของคุณถูกตั้งค่าเป็นการเข้ารหัส ASCII ธรรมดาหรือโหมดไบนารีคุณสามารถบันทึกลำดับนี้ไปยังไฟล์ หากคุณไม่มีสิ่งนั้นลองพิมพ์ CMD:

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


2
มันดีกว่าหรือแตกต่างจากแค่กดแท็บเอง
MátéJuhász
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.