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

Fehler im Batchscript - UpdateManager

Mitglied: nicolasduke

nicolasduke (Level 1) - Jetzt verbinden

17.07.2008, aktualisiert 21.07.2008, 2755 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
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 ...

Windows Userverwaltung

Berechtigungen Windows Server 2016 - Batchscript editieren

gelöst Frage von KMUlifeWindows Userverwaltung11 Kommentare

Hallo zusammen! Meine Haare werden langsam grau aufgrund der Berechtigungslogik von Microsoft. Ich hoffe ein paar von euch können ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing18 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware11 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...

VB for Applications
VBScript mit WINscp für einfachen FTP Transfer und nachträglichem verschieben der Datei in ein erledigt Verzeichnis
Frage von KeiosIDVB for Applications9 Kommentare

Hallo, leider soll ich auf den neueren Servern(Win2016R2) keine *.Bat Dateien mehr laufen lassen. Hier soll nun alles über ...