Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Auf bestehende Dateien per xml Datei überprüfen.

Frage Entwicklung Batch & Shell

Mitglied: Kalamari

Kalamari (Level 1) - Jetzt verbinden

06.11.2011, aktualisiert 13:12 Uhr, 2650 Aufrufe, 3 Kommentare

Hallo

Ich habe einige Probleme, um bestehende Dateien auf einem Pfad zu überprüfen und falls diese Datei bereits existiert, sollte diese nicht überschrieben werden.
Da immer eine meta.xml existiert, in der die Versionsnummer angegeben ist, dachte ich, ich verwende einfach diese Datei.
Versucht habe ich mein glück mit findstr in dieser Ausfürhung ...

if exist "Pfad\datei\meta.xml" findstr /c:"3.0 b1123" "Pfad\datei\meta.xml" >nul
if errorlevel 0 echo Die Anwendung ist bereits in der Version 3.0 vorhanden.
if errorlevel 1 rd "Pfad\datei\" /s /q & echo Eine frühere Version der Anwendung wurde gefunden und wird entfernt.

In der meta.xml steht der Eintrag so drin: <version>3.0 b1123</version>

Ja, leider klappt das nicht so wirklich.
Ist die richtige Datei Version vorhanden, kommt schön die Meldung "Die Anwendung ist bereits in der Version 3.0 vorhanden."
Ist die richtige Datei aber nicht vorhanden, oder es fehlt überhaupt der komplette Ordner, kommt auch diese Meldung...

Bitte um Hilfe, was mache ich falsch oder wie kann ich das Problem besser lösen?
Vielen dank
Mitglied: bastla
06.11.2011 um 13:45 Uhr
Hallo Kalamari!
if errorlevel 0
ist eine sinnlose Abfrage, da damit geprüft wird, ob der Errorlevel >= 0 ist (siehe "if /?") ...

... daher entweder
01.
if exist "Pfad\datei\meta.xml" ( 
02.
    findstr /c:"3.0 b1123" "Pfad\datei\meta.xml" >nul 
03.
    if errorlevel 1 ( 
04.
        rd "Pfad\datei\" /s /q & echo Eine frühere Version der Anwendung wurde gefunden und wird entfernt. 
05.
    ) else ( 
06.
        echo Die Anwendung ist bereits in der Version 3.0 vorhanden. 
07.
08.
)
oder gleich
01.
findstr /c:"3.0 b1123" "Pfad\datei\meta.xml" >nul 2>nul && ( 
02.
    echo Die Anwendung ist bereits in der Version 3.0 vorhanden. 
03.
) || ( 
04.
    rd "Pfad\datei\" /s /q 2>nul && echo Eine frühere Version der Anwendung wurde gefunden und wird entfernt. 
05.
)
Was sollte übrigens passieren, wenn "Pfad\datei\meta.xml" nicht gefunden wird?

Grüße
bastla
Bitte warten ..
Mitglied: Kalamari
06.11.2011 um 14:07 Uhr
Erstmal vielen Dank für Deine Hilfe!
Sollte die meta.xml gar nicht vorhanden sein, soll ein Ordner erstellt werden und die benötigten Dateien da rein kopiert werden.
Hmm, da stellt sich wieder die Frage, ob diese dann überhaupt vorhanden ist.

Also, ich hab da einen Downloader, der downloadet auf Wunsch die verschiedenen Applikationen, welche dann auf einen USB Stick kopiert werden sollten.

Datei wäre der Ordner vom Downloader und überprüft, ob überhaupts eine xml vorhanden ist.
Ist sie vorhanden, kann man weiter machen mit der Überprüfung
Da sollte das dann doch so gehen in etwa - jetzt grob geschrieben ...

if exist "Pfad\datei\meta.xml" if exist "USBStick\datei\meta.xml" (

Das sollte nur als Abgleich dienen, ob die gewünschte Datei vor dem Kopieren überhaupts in dem Ordner von dem Downloader vorhanden ist oder nicht?
Das heißt, das müsste noch in Deinem Code ein der ersten Zeile mit eingebaut werden oder?

Hmm, ich bin jetzt total verwirrt...
Kurz gesagt, es oll überprüft werden, ob die Datei in dem Ordner vom Downloader überhaupts zum Download ausgewählt wurde, wenn ja, ob die Datei auch auf dem Stick überhaupt in dem Ordner eine Datei namens meta.xml vorhanden ist.
Ist sie vorhanden, soll sie überprüft werden.
Ist diese Datei älter, soll sie entfernt werden und die neue drauf kopiert werden.
Ist das die identische Datei, soll gar nichts passieren...
Ist die Datei auf dem USB Stick nicht vorhanden, jedoch vom Downloader herunter geladen worde sein, soll sie kopiert werden.

Boah, jetzt bin ich überfordert und muss mir das nochmal durch denken.

Inzwischen vielen Dank für den Ansatz, Dein erster Code gefällt mir besser, da ich den besser verstehe
Bitte warten ..
Mitglied: bastla
06.11.2011 um 14:56 Uhr
Hallo Kalamari!
Dein erster Code gefällt mir besser, da ich den besser verstehe
"&&" entspricht einem "if %errorlevel%==0" und entsprechend "||" einem "if %errorlevel% neq 0" - damit sollte es klarer werden ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
XML Datei auslesen mit Excel (10)

Frage von kaiuwe28 zum Thema VB for Applications ...

XML
gelöst XML Datei mit Powershell splitten (2)

Frage von LianenSchwinger zum Thema XML ...

XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...