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

gelöst If kaskade in Batch

Mitglied: Tolwyn

Tolwyn (Level 1) - Jetzt verbinden

27.08.2008, aktualisiert 22:58 Uhr, 4137 Aufrufe, 5 Kommentare

Hallo

ich schreibe vielleicht erstmal was ich überhaupt machen will, eventuell gibt es dafür ja auch eine bessere lösung und dann mein eigentliches problem:

Ich habe zwei Ordner mit mehr oder weniger dem gleichen Inhalt (gleiche Dateinamen). Die Dateigrößen unterscheiden sich aber.
Es kann dabei sein, dass in Ordner A (fiktive "Quelle") die größere der beiden Dateien ist oder in Ordner B (fiktives "Ziel").

Alle Dateien sollen kopiert werden, aber wenn in der Quelle eine Datei eine geringere oder gleiche Größe ( <= ) hat als im Zielordner, soll sie nicht kopiert werden.

Meine Idee war mit einer FOR-Schleife eine Liste des Quellordners zu erstellen, Größe und Name der Datei zu speichern und dann mit der Datei im Zielordner zu vergleichen.

Logdatei aufbau: (eine Dir ausgabe)
01.
25.08.2008  12:08               295 textdatei_auslesen.bat
Die Batchdatei:
01.
@ECHO ON 
02.
 
03.
for /F "tokens=3* delims= " %%I in (F:\log.txt) DO ( 
04.
 
05.
::noch nicht verwendet; evtl für verwendung außerhalb der schleife 
06.
Set groesse =%%I 
07.
Set name =%%J 
08.
 
09.
	IF EXIST F:\test2\%%J (	ECHO Datei existiert bereits )	ELSE (Copy "F:\test\%%J" "F:\test2\")	 
10.
	 
11.
)
Jetzt wollte ich bei dem IF eigentlich dazu übergehen eine IF-Kaskade zu machen, wie in Java:
01.
if(//existiert datei?)  
02.
03.
  if( //ist quelldatei größer als zieldatei?) 
04.
05.
     if(//ist quelldatei um mindestens 2MB größer?)  
06.
07.
       etc etc etc... 
08.
09.
10.
   else  
11.
12.
13.
}

So hab ichs mal probiert:

IF EXIST F:\test2\%%J ( IF "F:\test2\%~zJ" GTR %%I (ECHO Datei existiert) ELSE (Copy "F:\test\%%J" "F:\test2\"))

Wie würde das richtig gehen?
Das IF und ELSE kann man ja auch nicht auf mehrere Zeilen verteilen?

Gruß

Tolwyn
Mitglied: miniversum
27.08.2008 um 13:55 Uhr
Das IF und ELSE kann man ja auch nicht auf mehrere Zeilen verteilen?
Doch das geht:
01.
IF EXIST F:\test2\%%J ( 
02.
  IF "F:\test2\%~zJ" GTR %%I ( 
03.
    ECHO Datei existiert 
04.
  ) ELSE ( 
05.
    Copy "F:\test\%%J" "F:\test2\" 
06.
07.
)
Wenn du allerdings sowieso mit %~zJ arbeitest müstest du die temponääre logdatei ncith umbedingt anlegen.
Das geht dann auch so:
01.
FOR /F "delims=" %%J in ('dir /b "F:\test\*.*"') do ( 
02.
  IF EXIST F:\test2\%%J ( 
03.
    FOR /F "delims=" %%I in ('dir /b "F:\test2\%%~nxI"') do ( 
04.
      IF "F:\test2\%%~zJ" GTR %%~zI ( 
05.
        ECHO Datei existiert 
06.
      ) ELSE ( 
07.
        Copy "F:\test\%%J" "F:\test2\" 
08.
09.
10.
11.
)
Bitte warten ..
Mitglied: bastla
27.08.2008 um 14:27 Uhr
... und mit analoger Vorgangsweise, aber Verwendung eines Schalters:
01.
@echo off & setlocal 
02.
set "Quelle=F:\test" 
03.
set "Ziel=F:\test2" 
04.
 
05.
for %%i in ("%Quelle%\*.*") do ( 
06.
    set DoIt= 
07.
    if not exist "%Ziel%\%%~nxi" ( 
08.
        set Doit=true 
09.
    ) else ( 
10.
        for %%j in ("%Ziel%\%%~nxi") do if %%~zi gtr %%~zj set Doit=true 
11.
12.
    If defined DoIt copy "%%i" "%Ziel%\">nul && echo %%~nxi 
13.
)
Grüße
bastla
Bitte warten ..
Mitglied: miniversum
27.08.2008 um 14:40 Uhr
Ich bin mir nicht sicher ob das so funktioniert.
Werden variabeln die in Klammern (von der For-Schleife) gesetzt werden nicht erst danach aufgelöst?
das if defined DoIt würd da doch dan garnicht funktionieren, oder liege ich jetzt falsch?
Bitte warten ..
Mitglied: bastla
27.08.2008 um 16:48 Uhr
@miniversum

... oder liege ich jetzt falsch?
Ja.

Grüße
bastla
Bitte warten ..
Mitglied: Tolwyn
27.08.2008 um 22:58 Uhr
hi

danke für eure Lösungen.
Hat soweit ganz gut funktioniert.

Die Frage ist damit erstmal gelöst.

Gruß

Tolwyn
Bitte warten ..
Ähnliche Inhalte
Router & Routing
Router Kaskade
gelöst Frage von Cougar77Router & Routing7 Kommentare

Hallo, irgendwie steh ich grade aufm Schlauch und weiß nicht, warum mein Aufbau nicht funktioniert Bitte nicht fragen, warum ...

Windows Netzwerk
Router Kaskade mit FTP-funktion
Frage von 126832Windows Netzwerk7 Kommentare

Router Kaskade mit DDNS sowie FTP-Server Funktion: Hallo zusammen, besitze eine FritzBox 6360 die ich mit einen Asus DIR-AC87U ...

Router & Routing
DynDNS mit pfSense in Router Kaskade
gelöst Frage von AndroxinRouter & Routing3 Kommentare

Moinsen, ich würde gerne die dynDNS Funktion einer pfSense Firewall/Router nutzen. Allerdings hängt die Firewall/Router in einer Kaskade hinter ...

Router & Routing
Router-Kaskade theoretische Frage
gelöst Frage von CometcolaRouter & Routing7 Kommentare

Guten Morgen, ich habe eine Verstädnisfrage und zwar ist der Aufbau an unserem DSL-Anschluss wie folgt: Fritzbox 7490 an ...

Neue Wissensbeiträge
Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 StundeSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 StundeMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 StundeHardware2 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

MikroTik RouterOS

Mikrotik Advisory: Vulnerability exploiting the Winbox port

Information von colinardo vor 1 StundeMikroTik RouterOS

Brand aktuell: Eine Schwachstelle im Winbox-Port bei Mikrotik Routern erlaubt das Auslesen der User-Datenbank der Router. Patch ist aktuell ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux22 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL13 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...