nowologix
Goto Top

Symbole nach zahlen anzeigen ?

Hi

ich möchte gerne einen counter schreiben...
bin auch so gut wie fertig aber da fehlt noch eine kleingkeit...

das scheme zum zählen sieht so aus:


:Start
set /a count=count+1

goto :Start


So nun soll aber ein kleiner optischer counter rein...
so in etwa:

:Start
set /a count=count+1
***
goto :Start


kann ich eine bestimmen zeichenzahl anzeigen lassen ?
also wenn COUNT=10 dann soll er 10 Sternchen ausgeben...

ist das irgendwie möglich ?

Content-Key: 75942

Url: https://administrator.de/contentid/75942

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 58502
58502 Dec 13, 2007 at 22:42:50 (UTC)
Goto Top
Eine zusätzliche Zeile nach jedem set /a ausführen und die Sterne mit der Variablen ausgeben.

set stern=

:Start
set /a count=count+1
if "%stern%"=="" (set stern=*) else (set stern=%stern%*)  
echo %stern%

rem wenn du hier nichts änderst, bist du in einer Endlosschleife

goto :Start
Member: Dani
Dani Dec 13, 2007 at 23:07:18 (UTC)
Goto Top
Abend,
eine weitere Möglichkeit wäre statt der IF - Abfrage einfach eine FOR - Schleife benutzen.
@echo off

:start
set /a count=count+1
for /l %%a in (1,1,%count%) do echo *

goto start
Bei der Schleife handelt es sich um eine Zählschleife. Sprich 1 ist der Startwert. Der 2. Parameter ist die Schrittweite. Der Letzte gibt das Maximum an. Allerdings so, wird dir das Ganze zu schnell durchlaufen. face-smile


Grüße
Dani
Mitglied: 58502
58502 Dec 13, 2007 at 23:31:00 (UTC)
Goto Top
Jetzt musst du nur noch erklären, wie man die Zeilenvorschübe wegbekommt, so dass die Sternchen in einer Zeile bleiben. face-smile
Member: Dani
Dani Dec 14, 2007 at 00:30:57 (UTC)
Goto Top
Moin,
Sry...war wohl schon gedanklich im Bett. face-smile

Hier die Version 0.2:
@echo off & setlocal
set stern=

:start
set /a count+=1
for /l %%a in (1,1,%count%) do set stern=%stern%*
echo %stern%

goto start
Getestet unter WindowsXP Professional.


Grüße
Dani
Member: Nowologix
Nowologix Dec 14, 2007 at 00:46:13 (UTC)
Goto Top
wunderbar läuft alles prima =)


Vielen dank an euch beide !!!
Mitglied: 58502
58502 Dec 14, 2007 at 00:59:11 (UTC)
Goto Top
@Dani

Hehe, das hatte ich auch schon angedacht. Ich bin nur am Test ohne Batch in der Konsole gescheitert. face-wink

Probiere doch mal aus:

set stern=
set stern=%stern%*
set stern oder
echo %stern%

Was wird als Wert für stern angezeigt?
Member: Biber
Biber Dec 14, 2007 at 07:32:25 (UTC)
Goto Top
Moin nowologix,

Du solltest auch mal in diesem Thread Batch Zeichenanzahl xyz.txt ermitteln oder Fortschrittsbalken unter Batch realisieren. stöbern.
Obwohl eigentlich die Intension dieses Beitrags war zu belegen, dass es nicht sinnvoll geht.

Für Dein kleines Fortschrittsbälkchen wäre als Strategie auch möglich, die %Stern%-Variable am Anfang in der maximal denkbaren Länge zu definieren (z.B. 20 Zeichen lang) und dann jeweils einen Teilstring anzuzeigen, ohne die Variable selbst neu zu SETzen.

Beispiel am Prompt:
>set stern=***************
>for /L %a in (1,1,10) do @echo !stern:~0,%a!
*
**
***
****
*****
******
*******
********
*********
**********
-oder in Deinem Fall/Batch
@echo off & setlocal EnableDelayedExpansion
Set Stern=**********************
Set /a max= 10
:Start
set /a count=count+1
:: hier irgendwas verarbeiten 
:: hier irgendwas verarbeiten 
cls
echo !stern:~0,%count%!

If %count% GEQ %max% goto :eof
goto :Start

[Hier im Beispiel mal ohne FOR-Anweisung; hier ist es ja mit "goto :Start" angefangen worden.]

Grüße
Biber
Member: Dani
Dani Dec 14, 2007 at 10:22:37 (UTC)
Goto Top
Hi,
die Ausgabe sieht so aus:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\rbs>set stern=

C:\Dokumente und Einstellungen\rbs>set stern=%stern%*

C:\Dokumente und Einstellungen\rbs>echo %stern%
%stern%*

C:\Dokumente und Einstellungen\rbs>
Direkt aus dem Prompt kopiert....


Grüße
Dani
Member: Biber
Biber Dec 14, 2007 at 11:33:24 (UTC)
Goto Top
Na ja, Dani,

wobei ich dazu noch ergänzen muss, dass das Verhalten mit nicht-definierten Variablen am CMD-Prompt und im Batch unterschiedlich ist. Habe ich schon mal in dem Batch-TutII ("Ein bisschen Handwerkszeug") breitgetreten.

Am CMD-Prompt:
echo %undefinierteVar% --------> führt zur Ausgabe: %undefinerteVar% (als Text 1:1).

Im Batch:
echo %undefinierteVar% --------> führt zur Ausgabe: (nix. Leerstring) .

Insofern würde Dein "immer-einen-*-anhängen" im Batch schon funktioneren.

Dass ich so einen Schrubbelcode hier in "Batch & Shell" niemals gutheißen würde, ist was anderes..face-wink

Grüße
Biber