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...
Please also mark the comments that contributed to the solution of the article
Content-Key: 92311
Url: https://administrator.de/contentid/92311
Printed on: April 20, 2024 at 16:04 o'clock
6 Comments
Latest comment
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 ...