Prozentzeichen benutzen in BATCH Datei?
Hallo ich möchte in einer Batch datei % benutzen
Es wird aber irgendwie in der CMD entfernt
Skript:
echo Starting... 1%
echo Starting... 2%
echo Starting... 3%
3 Antworten
TechPech1984 hat bereits die weitgehend gültige Regel geliefert.
Bei direkter Eingabe in die Console genügt es , wie Du es in Deiner Frage geschrieben hast. Einfach %
In einer Batchdatei müssen % für eine Verwendung als Text verdoppelt werden: %%
demo.cmd
@echo off
echo Starting... 1%
echo Starting... 2%
echo Starting... 3%
pause
...aber Batch ist tückisch...
- Für %Variablen% bleibt es bei einfachen % .
- bei Laufvariablen in for-Loops wird in Batchdateien verdoppelt for %%a in ("bubb") do (...) , direkt in der Console jedoch for %a in ("bubb") do (...) !
- Textuale % in call-Konstrukten (Variablenzugriff in Klammerböcken) müssen vervierfacht werden!
@echo off
call echo hallo 10 %%%%
pause
demo2. cmd
@echo off
for /l %%a in (0,20,100) do (
echo Starting... %%a%%
timeout 1 >nul
)
rem die Nummer mit den vierfachen %%%%:
rem wenn man im Klammerblock auf eine im Block gesetzte variable zugreifen muss
set "MaximalWert=340"
for /l %%a in (0,20,%MaximalWert%) do (
rem prozent berechnen
set /a "proz=%%a * 100 / MaximalWert"
rem auf aktuelle in der Klammer berechnete Variable %proz% zugreifen
call echo %%a von %MaximalWert% ist %%proz%%%%%%
timeout 1 >nul
)
pause
Wenn Du Dir was gutes tun willst, gewöhn dich nicht allzsehr an Batch, Microsoft hat das Ende von Batch bereits eingeläutet.
Stell Dich auf Powershell ein.
Batch kann höllisch werden.
Mal ein Beispiel, wie man Batch an seine Grenzen treibt:
und auch sonst am Limit:
Batch ist eine der schwierigsten Sprachen überhaupt.
% ist ein Zeichen was so erstmal ausgewertet wird.
Es gibt zweierlei Arten von Variablen: Scriptvariablen und Systemvariablen. Die Scriptvariablen werden innerhalb von Schleifen eingesetzt, beginnen mit % und einem frei wählbaren Zeichen, oder einer Zeichenfolge. Systemvariablen müssen von % begonnen und von % abgeschlossen werden.
https://de.wikibooks.org/wiki/Batch-Programmierung:_Erweiterungen_unter_Windows_NT
. deswegen erscheint es nicht .
doppelt dann erscheint es wieder
auch wenn man modulo mit % rechnen will , damit % seine eigentliche bedeutung verliert muss man dann %% nutzen , sonst denkt es es kommt z.b. eine variable
das ist noch lange nicht alles, es gibt sogar Situationen, wo man vervierfachen muss
@echo off
rem % geht auch mit verdoppeln %% nicht durch
call :subMachWasMitText "Fail jetzt kommt ein Prozentzeichen %%"
call :subMachWasMitText "Aber... jetzt kommt ein Prozentzeichen %%%%"
pause
exit /b
:subMachWasMitText
rem irgendwas das mit eiem Übergebenen String arbeitet
echo:%~1
exit /b
eventuell mit anführungszeichen?
echo "Starting...3%"
funktioniert bei mir im Terminal jedenfalls.