Fehler im Batchscript - UpdateManager
Hallo Leute,
wie der Titel schon sagt, bin ich auf der Suche nach einem Tool zur Überprüfung meiner Batch Quelltexte...
Kennte jemand von euch entsprechende Tools?
Oder könnte sich jemand folgenden Quelltext ansehen -> Funktioniert irgendwie nicht....
PS: Vorab schon mal besten Dank für die sicherlich recht hilfreichen Antworten von euch...
wie der Titel schon sagt, bin ich auf der Suche nach einem Tool zur Überprüfung meiner Batch Quelltexte...
Kennte jemand von euch entsprechende Tools?
Oder könnte sich jemand folgenden Quelltext ansehen -> Funktioniert irgendwie nicht....
title Update-Manager for BEISPIEL-PROGRAMM
setlocal enabledelayedexpansion
SET versionsnummer=5.3.1.3
set "found=0"
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO (
set "Program=%%B"
set "Version=%%C"
if "!PROGRAM!"=="BEISPIEL-PROGRAMM" (
set "found=1"
if not "!VERSION:~0,-1!"=="%versionsnummer%" set UpdatenVar=Möchten Sie BEISPIEL-PROGRAMM 5.3.1.3 installieren?(Yes/No)
if %UPDATENVAR%==Yes call D:\Starte BEISPIEL-PROGRAMM installer.bat
if "!VERSION:~0,-1!"=="%Versionsnummer%" echo OK!
)
)
)
rem Anzeige aller Programme "REM" entfernen.
rem echo "!PROGRAM!", "!VERSION:~0,-1!"
IF "!found!"=="0" call D:\Starte BEISPIEL-PROGRAMM installer.bat
PS: Vorab schon mal besten Dank für die sicherlich recht hilfreichen Antworten von euch...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92311
Url: https://administrator.de/forum/fehler-im-batchscript-updatemanager-92311.html
Ausgedruckt am: 16.05.2025 um 16:05 Uhr
6 Kommentare
Neuester Kommentar

Servus,
Ent weder oder
Program oder !Program! ????
Das gleiche bei Version...
<[code]> <[/Code]>
set "Program=%%B"
if "!PROGRAM!"=="BEISPIEL-PROGRAMM" (
Ent weder oder
Program oder !Program! ????
Das gleiche bei Version...
Moin nicolasduke,
<OT>
falls ich es noch nicht erwähnt haben sollte: Ich mag keine ODER-Fragen.
Das hier wird wieder so ein Bandwurm-Beitrag, der NIE "gelöst" wird.
Bitte entscheide Dich:
Meine Bitte: Ändere den Titel auf: "Fehler im Batchskript" oder so etwas.
</OT>
Grüße
Biber
<OT>
falls ich es noch nicht erwähnt haben sollte: Ich mag keine ODER-Fragen.
Das hier wird wieder so ein Bandwurm-Beitrag, der NIE "gelöst" wird.
Bitte entscheide Dich:
- sollen wir Dir den Schnipsel zum Laufen bringen?
- oder suchst Du wirklich einen Batch-Parser?
- Wenn letzteres - wer sollte so etwas geschrieben haben und wozu????
Meine Bitte: Ändere den Titel auf: "Fehler im Batchskript" oder so etwas.
</OT>
Grüße
Biber
Hallo nicolasduke!
In den "set"-Zeilen ist kein Variablenbegrenzer (also auch nicht "!") nötig, daher:
Weiter unten (beim Auswerten der Variablen %UPDATENVAR%) wäre dann wieder das "!" anstelle von "%" gefragt, also:
Leichter machst Du es den Benutzer/innen, wenn Du nicht die exakte Schreibweise des "Yes" überprüfst, sondern etwa nur den ersten Buchstaben, und auch da nicht auf Groß- oder Kleinschreibung bestehst, also etwa:
Außerhalb der Schleife (zB für die Kontrolle von %found%) ist keine "delayedExpansion" erforderlich, daher wieder Variablenschreibweise wie gehabt:
Und falls ich mich nicht verzählt habe, hast Du eine schließende Klammer zuviel (oder auch eine zu wenig geöffnet
).
Grüße
bastla
P.S.: TimoBeil hat das mit den ""-Tags als gemeint ...
In den "set"-Zeilen ist kein Variablenbegrenzer (also auch nicht "!") nötig, daher:
set "PROGRAM=%%B"
set "VERSION=%%C"
if !UPDATENVAR!==Yes call D:\Starte BEISPIEL-PROGRAMM installer.bat
if /i "!UPDATENVAR:~,1!"=="Y" call "D:\Starte BEISPIEL-PROGRAMM installer.bat"
IF "%found%"=="0" call "D:\Starte BEISPIEL-PROGRAMM installer.bat"
Grüße
bastla
P.S.: TimoBeil hat das mit den ""-Tags als gemeint ...