在 cmd.exe 中设置制表符长度

Gie*_*ron 6 windows command-line

默认情况下,cmd 中的制表符长度为 8 个字符。有什么办法可以把它改成更小的东西吗?

我们在代码中使用制表符进行缩进。因此,来自 Mercurial(即hg diff)的diff 输出变得非常难读。

Bob*_*Bob 4

使用批处理文件,您可以使用逐行字符串替换来将制表符替换为四个空格:

@echo off

setlocal EnableDelayedExpansion

for /f "tokens=* delims=" %%a in ('hg diff') do (
    set __temp=%%a
    echo !__temp:   =    !
)

endlocal
Run Code Online (Sandbox Code Playgroud)

EnableDelayedExpansion 启用了!s 的使用以及循环内变量的修改for


看来在这个答案中插入代码已经用制表符替换了三个空格。将其复制到批处理文件时,请确保行中的:=之间有一个实际的制表符echo


如果您需要运行的命令中有单引号(我实际上不知道 的完整语法hg diff),那么您必须用反引号将其括起来并启用usebackq。这意味着您不能在需要运行的命令中使用反引号。选一个。

反引号版本:

@echo off

setlocal EnableDelayedExpansion

for /f "usebackq tokens=* delims=" %%a in (`hg diff`) do (
    set __temp=%%a
    echo !__temp:   =    !
)

endlocal
Run Code Online (Sandbox Code Playgroud)