我正在尝试创建一个必须回显只包含两个字符的字符串的for语句。 字符串的类型将类似于“aaabbb”。 我的问题是echo命令每次调用时都会生成一个新行,所以如果我写了类似的东西:
FOR %%i IN (<condition>) DO ECHO a
FOR %%i IN (<condition>) DO ECHO b
结果如下:
a
a
a
b
b
b
我的想法是“也许回应一个独特的字符串?” 所以我想知道是否有一种方法可以在另一个变量中附加一个字符/变量。
感谢您的支持, 等待回复, 戴夫。
答案 0 :(得分:0)
解决方案:
@ECHO off &SETLOCAL EnableDelayedExpansion
:vars
SET "fC=a"
SET "sC=b"
SET "toEcho="
PAUSE
FOR /L %%f IN (1, 1, 3) DO (
IF %%f == 1 SET "toEcho=!toEcho!%fC%"
IF %%f == 2 SET "toEcho=!toEcho!%fC%"
IF %%f == 3 SET "toEcho=!toEcho!%fC%"
)
FOR /L %%f IN (4, 1, 6) DO (
IF %%f == 4 SET "toEcho=!toEcho!%sC%"
IF %%f == 5 SET "toEcho=!toEcho!%sC%"
IF %%f == 6 SET "toEcho=!toEcho!%sC%"
)
ECHO %toEcho%
GOTO end
:end
PAUSE
真正的项目是一个酒吧。 我将完成级别的百分比作为参数添加到标签中,它为我提供了一个完整的加载栏!
第一个参数是如何大有必要的信息。
:bar size loaded
CLS
SET /A "toDo=(%~1*%~2)/100"
SET /A "remains=%~1-%toDo%"
ECHO %~2%%
SET "bar_up=%corUL%"
FOR /L %%i IN (1, 1, %~1) DO SET "bar_up=!bar_up!%linHo%"
SET "bar_up=!bar_up!%corUR%
ECHO %bar_up%
SET "bar_ce=%linVe%"
FOR /L %%i IN (1, 1, %toDo%) DO SET "bar_ce=!bar_ce!%barDo%"
FOR /L %%i IN (1, 1, %remains%) DO SET "bar_ce=!bar_ce!%barSp%"
SET "bar_ce=!bar_ce!%linVe%
ECHO %bar_ce%
SET "bar_do=%corDL%"
FOR /L %%i IN (1, 1, %~1) DO SET "bar_do=!bar_do!%linHo%"
SET "bar_do=!bar_do!%corDR%
ECHO %bar_do%
EXIT /B
其他变量是:
corUL =左上角字符
corUR =右上角角色
corDL =左下角字符
corDR =右下角字符
linHo =水平线字符
linVe =垂直线字符
barDo =表示栏的完成部分的字符
barSp =表示栏的空白部分的字符