我无法逃避使用感叹号^^!。我知道我需要使用setlocal disabledelayedexpansion或只是使用,endlocal但我找不到合适的位置来放置它而不会出现任何错误。
这是我的脚本,旨在在cmd窗口的水平中心显示文本:
@echo off
setlocal enabledelayedexpansion
title Center Text
mode 80,50
set "cmdwidth=80"
:Display
cls
set Center=This is a test^^! & call :CenterText Center strLen
echo.
pause
exit
:CenterText
if not "!%1:~%len%!"=="" set /A len+=1 & goto :CenterText
(endlocal & set %2=%len%)
goto CenterTextDisplay
:AddSpace
set "spaces=%spaces% "
goto :eof
:CenterTextDisplay
set /a "indent=(cmdwidth - strLen)/2"
set "spaces= "
for /l %%a in (1,1,%indent%) do call :AddSpace
echo %spaces%%Center%
set "len=0" …Run Code Online (Sandbox Code Playgroud)