如何在命令提示符下回显TAB字符


21

在Windows批处理文件上,回显a的正确方法是TAB什么?

echo A<TAB>B<TAB>C

我知道我可以TAB在条目之间键入char,但是大多数编辑器会将其显示为一系列空格。有些甚至会自动将它们转换为空格,我正在寻找更直观的东西。

澄清: <TAB>这里指的是真正的制表符。我正在寻找批处理脚本中的C \ t。


您尝试过编辑器,发现“大多数”显示选项卡是一系列空格?那些是什么?我尝试过的第一个编辑器是记事本,它会将选项卡显示为选项卡。
barlop 2011年

Answers:


17

只需TAB在支持它的编辑器(例如记事本)中按一下键即可。

因此,如果我输入以下内容:

@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= "空格实际上是TAB(0x09)字符。显然这不是最理想的选择,但它似乎是我所见过的最佳选择。
点灯

要在按TAB键时获取TAB字符,必须启动命令提示符,例如cmd /F:OFF禁用文件/目录的自动完成功能。名称...
aschipfl

11

一种解决方案是可以设置一个称为TAB的环境变量,并将其值设置为实际的制表符。您可能需要从文本编辑器复制并粘贴制表符,以使其正确输入。我已经在Windows 7中尝试过了,并且可以正常工作。

在批处理文件中,只需使用%TAB%,它将插入一个制表符。


3
如果有人可以在评论的某处找到+1,则某人投票否决了您。但是答案应该在答案中找到,而不能在评论中找到,因此我的
赞誉

3

诸如此类的限制是使用Windows Script Host或Powershell的原因之一。

Windows Script Host 98的每个Windows版本一起提供(发货),并且可以安装在95和NT 4上。

创建一个名为的文件demo.vbs,并将以下行粘贴到其中并保存。

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

现在,从保存它的目录中输入:

demo.vbs

并且您应该看到:

a       b

你也可以

cscript demo.vbs

这将允许您使用提供的命令行开关cscript

(在Vista上测试。)


Powershell会很好,但是并不总是可用...
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使用纯ASCII码chr(9)发送到CMD。可以通过在同时按住Left-ALT的同时按数字键盘上的9来调用此特殊字符。看起来像粗体O的Char应该出现,否则某种编码或键盘映射已启用。

如果将编辑器设置为纯ASCII编码或二进制模式,则可以将此序列保存到文件中。如果您没有这样的设备,请尝试键入CMD:

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


2
与仅按制表符本身相比,有什么好处/不同?
马塔·朱哈斯(MátéJuhász)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.