Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung

Fehler im Batchscript - UpdateManager

Mitglied: nicolasduke

nicolasduke (Level 1) - Jetzt verbinden

17.07.2008, aktualisiert 21.07.2008, 2750 Aufrufe, 6 Kommentare

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....

01.
title Update-Manager for BEISPIEL-PROGRAMM 
02.
setlocal enabledelayedexpansion  
03.
SET versionsnummer=5.3.1.3 
04.
set "found=0"  
05.
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO (  
06.
set "Program=%%B"  
07.
set "Version=%%C"  
08.
if "!PROGRAM!"=="BEISPIEL-PROGRAMM" (  
09.
set "found=1"  
10.
if not "!VERSION:~0,-1!"=="%versionsnummer%" set UpdatenVar=Möchten Sie BEISPIEL-PROGRAMM 5.3.1.3 installieren?(Yes/No) 
11.
if %UPDATENVAR%==Yes call D:\Starte BEISPIEL-PROGRAMM installer.bat 
12.
if "!VERSION:~0,-1!"=="%Versionsnummer%" echo OK!  
13.
)  
14.
)  
15.
)  
16.
rem Anzeige aller Programme "REM" entfernen.  
17.
rem echo "!PROGRAM!", "!VERSION:~0,-1!"  
18.
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...
Mitglied: 60730
17.07.2008 um 17:27 Uhr
Servus,

<[code]> <[/Code]>
01.
set "Program=%%B"  
02.
if "!PROGRAM!"=="BEISPIEL-PROGRAMM" ( 
03.
 
Ent weder oder
Program oder !Program! ????
Das gleiche bei Version...
Bitte warten ..
Mitglied: miniversum
17.07.2008 um 18:48 Uhr
Hier:
01.
if not "!VERSION:~0,-1!"=="%versionsnummer%" set UpdatenVar=Möchten Sie BEISPIEL-PROGRAMM 5.3.1.3 installieren?(Yes/No)
hast du ein "/p" nach dem set vergessen:
01.
if not "!VERSION:~0,-1!"=="%versionsnummer%" set /p UpdatenVar=Möchten Sie BEISPIEL-PROGRAMM 5.3.1.3 installieren?(Yes/No)
Bitte warten ..
Mitglied: Biber
17.07.2008 um 18:54 Uhr
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:
  • 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
Bitte warten ..
Mitglied: nicolasduke
20.07.2008 um 10:51 Uhr
Hallo Ihr,
zunächst besten Dank für eure Antworten. Irgendwie funktioniert das Teil immer noch nicht.

Die Batch macht vom prinzip her gar nichts, was sie ja eigentlich nicht sollte....
Woran's liegt, keine ahnung...

01.
title Update-Manager for BEISPIEL-PROGRAMM 
02.
@echo on 
03.
setlocal enabledelayedexpansion  
04.
SET versionsnummer=5.3.1.3 
05.
set "found=0"  
06.
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO (  
07.
set "!PROGRAM!=%%B"  
08.
set "!VERSION!=%%C"  
09.
if "!PROGRAM!"=="BEISPIEL-PROGRAMM" (  
10.
set "found=1"  
11.
if not "!VERSION:~0,-1!"=="%versionsnummer%" set /p UpdatenVar=Möchten Sie BEISPIEL-PROGRAMM 5.3.1.3 installieren?(Yes/No)  
12.
if %UPDATENVAR%==Yes call D:\Starte BEISPIEL-PROGRAMM installer.bat 
13.
if "!VERSION:~0,-1!"=="%Versionsnummer%" echo OK!  
14.
)  
15.
)  
16.
)  
17.
rem Anzeige aller Programme "REM" entfernen.  
18.
rem echo "!PROGRAM!", "!VERSION:~0,-1!"  
19.
IF "!found!"=="0" call D:\Starte BEISPIEL-PROGRAMM installer.bat

Bitte um Hilfe...

Beste Grüße
nicolasduke
Bitte warten ..
Mitglied: bastla
20.07.2008 um 22:44 Uhr
Hallo nicolasduke!

In den "set"-Zeilen ist kein Variablenbegrenzer (also auch nicht "!") nötig, daher:
01.
set "PROGRAM=%%B" 
02.
set "VERSION=%%C"
Weiter unten (beim Auswerten der Variablen %UPDATENVAR%) wäre dann wieder das "!" anstelle von "%" gefragt, also:
01.
if !UPDATENVAR!==Yes call D:\Starte BEISPIEL-PROGRAMM installer.bat
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:
01.
if /i "!UPDATENVAR:~,1!"=="Y" call "D:\Starte BEISPIEL-PROGRAMM installer.bat"
Außerhalb der Schleife (zB für die Kontrolle von %found%) ist keine "delayedExpansion" erforderlich, daher wieder Variablenschreibweise wie gehabt:
01.
IF "%found%"=="0" call "D:\Starte BEISPIEL-PROGRAMM installer.bat"
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 "<code></code>"-Tags als Formatierungshinweis gemeint ...
Bitte warten ..
Mitglied: nicolasduke
21.07.2008 um 15:37 Uhr
Also Leute,
der update manager funktioniert leider immer noch nicht. Ich bin irgendwie am verzweifeln.

Was macht das ding konkret?
- Die cmd startet, wie gehabt, bleibt länger offen als bisher und schließt sich gleich wieder.
- Egal ob die Programmversion veraltet ist oder nicht, die Installation startet nie.
- Der Benutzer kann darüberhinaus auch nie entscheiden, ob installiert werden soll oder nicht - klar, wie auch, wenn sich die cmd gleich wieder schließt...

Führe ich meinen Update-Manager unter cmd mit:
01.
start d:\clonecd updatemanager.bat
aus, dann öffnet sich immer der Installer.


Hier nochmal der Quelltext:
01.
title Update-Manager for CloneCD 
02.
@echo on 
03.
setlocal enabledelayedexpansion 
04.
SET versionsnummer=5.3.1.3 
05.
set "found=0" 
06.
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO ( 
07.
set "PROGRAM=%%B" 
08.
set "VERSION=%%C" 
09.
if "!PROGRAM!"=="CloneCD" ( 
10.
set "found=1" 
11.
if not "!VERSION:~0,-1!"=="%versionsnummer%" set /p 
12.
UpdatenVar=Möchten Sie CloneCD 5.3.1.3 installieren?(Yes/No) 
13.
if /i "!UPDATENVAR:~,1!"=="Y" call "D:\Starte CloneCD installer.bat" 
14.
if "!VERSION:~0,-1!"=="%Versionsnummer%" echo OK! 
15.
16.
17.
rem Anzeige aller Programme "REM" entfernen. 
18.
rem echo "!PROGRAM!", "!VERSION:~0,-1!" 
19.
IF "%found%"=="0" call D:\Starte CloneCD installer.bat

PS: Kann es vielleicht sein, dass WMIC sich nur auf Installationen bezieht, die mit dem Windows Installer installiert wurden?

Ich hab mir mal mit:
01.
WMIC /OUTPUT:Software.html Product get name,version /FORMAT:hform
eine Softwareliste erstellt und da zeigt's nur etwa die hälfte an Software an, die ich installiert habe...

Wie kann ich in meinem Quelltext nach allen, auf dem System installierten Programmen suchen lassen? Und nicht nur nach denen, die wahrscheinlich mit dem WindowsInstaller installiert wurden?

Hab hier mal einen anderen Quelltext gefunden - ob er was nützt, ich weis es nicht.:
01.
Public Sub check_sw() 
02.
 
03.
    Dim strComputer 
04.
    Dim objReg 
05.
    Dim strKeyPath 
06.
    Dim subkey 
07.
    Dim arrSubKeys 
08.
    Dim strDisplayName 
09.
    Dim strDisplayVersion 
10.
    Dim strPublisher 
11.
     
12.
'======================================================= 
13.
'DEFINIERT HKLM ALS HEX-VALUE (FÜR ENUMERATE) 
14.
'======================================================= 
15.
    Const HKLM = &H80000002 
16.
     
17.
    strComputer = "." 
18.
 
19.
    DoEvents 
20.
        frm_install.lbl_warten.Visible = True 
21.
    DoEvents 
22.
     
23.
    frm_install.lstb_software.Clear 
24.
     
25.
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
26.
    strComputer & "\root\default:StdRegProv") 
27.
     
28.
'======================================================= 
29.
'EINZULESENDE REGISTRY-WERTE 
30.
'======================================================= 
31.
    strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" 
32.
    objReg.EnumKey HKLM, strKeyPath, arrSubKeys 
33.
     
34.
'======================================================= 
35.
'REGISTRY-EINTRÄGE WERDEN AUFGESCHLÜSSELT 
36.
'======================================================= 
37.
    For Each subkey In arrSubKeys 
38.
        objReg.GetStringValue HKLM, strKeyPath & subkey, "DisplayName", strDisplayName 
39.
        objReg.GetStringValue HKLM, strKeyPath & subkey, "DisplayVersion", strDisplayVersion 
40.
        objReg.GetStringValue HKLM, strKeyPath & subkey, "Publisher", strPublisher 
41.
        If strDisplayName <> "" Then 
42.
            frm_install.lstb_software.AddItem (strDisplayName) & Chr(32) & strDisplayVersion & Chr(32) & strPublisher 
43.
        End If 
44.
    Next 
45.
    frm_install.chb_systemcheck.Value = vbChecked 
46.
    frm_install.lbl_warten.Visible = False 
47.
    Set objReg = Nothing

Grüße
nicolasduke
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchscripts
gelöst Frage von perseus21Batch & Shell6 Kommentare

Hallo, ich suche nach einer Lösung um mit CMD folgendes Problem zu lösen: Ich möchte, daß der Benutzer mittels ...

Batch & Shell
Rechteveragbe über Batchscript
gelöst Frage von sanaitBatch & Shell7 Kommentare

Moin Moin, ich habe mir ein Laufwerk gemappt und will nun dort in einem Script die Rechte in den ...

Batch & Shell
Batchscript lässt sich nicht mit der Aufgaben Planung ausführen
gelöst Frage von MultiStormBatch & Shell18 Kommentare

Hallo ich fange erstmal mit den Rahmenbedingungen an Server: Windows Server 2012 R2 als HyperV VM 15 GB RAM ...

Batch & Shell
Batchscript führt im Task Planer die Aktionen nicht aus
gelöst Frage von Ch3p4cKBatch & Shell5 Kommentare

Hallo zusammen, nun setze ich mal meine Hoffnung in die Community. Ich habe gerade auf einem Windows Server 2008 ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 13 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 13 StundenSicherheit7 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 14 StundenSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 14 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen20 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...