我想在文本之前放置一個變量在同一行上,而不會在變量改變其字符數量時向前推文本。我可以停止批量推送以下文本的文本嗎?
例如,
@echo off
set var=1
:start
cls
echo Variable: %var% 'Text'
echo ' '
pause >nul
set /a var= %var% * 10
goto start
每當變量擴大時文本向右移動,是否可以將文本保持在同一位置?
我想在文本之前放置一個變量在同一行上,而不會在變量改變其字符數量時向前推文本。我可以停止批量推送以下文本的文本嗎?
例如,
@echo off
set var=1
:start
cls
echo Variable: %var% 'Text'
echo ' '
pause >nul
set /a var= %var% * 10
goto start
每當變量擴大時文本向右移動,是否可以將文本保持在同一位置?
設定變量爲已知lenght(添加空格它,並以固定長度
@echo off
set "spaces= "
set var=1
:start
cls
set var=%var%%spaces%
set var=%var:~0,15%
echo Variable: %var%'Text'
echo %spaces:~0,15%' '
pause >nul
set /a var= %var% * 10
goto start
@ECHO Off
SETLOCAL enabledelayedexpansion
SET "string= Text"
SET /a var=1
:loop
FOR /l %%a IN (1,1,30) DO IF "!var:~%%a,1!"=="" SET "newstr=%var%!string:~%%a!"&GOTO foundlen
:foundlen
ECHO %newstr%
SET /a var*=10
IF %var% gtr 0 GOTO loop
GOTO :EOF
切割假定的var
的長度小於30
而異%%a
直到%%a
是前綴字符串的長度,然後將前綴串到另一個字符串中,刪除%%a
個字符。
如果前綴字符串var
可以是空的,然後
set "newstr=%string%"
if defined var for /l ...
我選擇強制循環通過利用整數數學的31位性質cmd
終止 - 如果數目的增長> 2 ** 31然後它可能會顯示爲負值。這只是一種終止循環的方法,而不是明確檢查它是否具有最大允許長度。