Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 2619 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Batch & Shell
Script zum XML Datei Umschreiben (12)

Frage von cberndt zum Thema Batch & Shell ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...