如何编写一个批处理函数来添加制表符



我有这个函数来添加一个新行,我想修改它来添加一个制表符而不是一个新行。如何做到这一点?

@echo off
Echo Hello & Call:SkipLine 4 & echo StackOverflow & Pause
:SkipLine
For /L %%I In (1,1,%1) Do Echo( 

要编写不换行的字符串,使用set /p。不幸的是,前导空格(空格和制表符)被忽略,因此<nul set /p "=<TAB>"不起作用。

这应该是你想要的:

@echo off
setlocal enabledelayedexpansion
Call:SkipLine 4
echo Hello%x%StackOverflow
Pause
exit /b
:SkipLine
set "x="
For /L %%I In (1,1,%1) Do set "x=!x!    "
REM                                  ^-- this is a TAB
goto :eof

这是另一个例子,就像由Stephan

Thanks to Walid

@echo off
Call:MyTab 1
echo Salut [%TAB%] Hello
Call:MyTab 5
echo Hi ! [%TAB%] How are you ?
Call:MyTab 10
echo Hello  [%TAB%] World !
pause
exit /b
:MyTab
Setlocal EnableDelayedExpansion
set "CHAR="
set "_X9=   "
For /L %%I In (1,1,%1) Do set "CHAR=!CHAR!%_X9%"
(
  endlocal
  set "TAB=%CHAR%"
  exit /b
)

代码:

@echo off <br>
setlocal EnableDelayedExpansion <br>
set "TAB=   " <<<--- put a tab or blank spaces here <br>
echo Hello!TAB!world <br>
echo bye. sjo. <br>

最新更新