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

Batch, Dateinamen vergleichen

Mitglied: netgearsdk

netgearsdk (Level 1) - Jetzt verbinden

15.03.2013 um 10:46 Uhr, 2733 Aufrufe, 7 Kommentare

Hallo zusammen,

Wie kann ich mit einer Batch, die Datei unterhalb eines Ordners vergleichen mit einer anderen Datei, unterhalb eines anderen Ordners? Wenn die Dateinamen identisch sind, sollte er XXX machen und wenn nicht dann YYY machen.

Ich habe mal so probiert.. jedoch klappt das nicht richtig.


01.
  
02.
@echo off 
03.
fc "D:\Temp\OrdnerA" "D:\Temp\OrdnerB" > nul 
04.
if errorlevel 1 ( 
05.
echo "ist genau gleich" 
06.
) else ( 
07.
echo "ist nicht gleich" 
08.
09.
pause


Im Verzeichnis D:\Temp\OrdnerA\ ist folgende Datei A.txt vorhanden
Im Verzeichnis D:\Temp\OrdnerB\ ist folgende Datei B.txt vorhanden

er gibt mir jedoch "ist genau gleich" aus.

Evtl. noch zu erwähnen: Ich möchte explizit nicht im Code D:\Temp\OrdnerA\A.txt haben. Sonst muss ich jedes mal diese im Code ändern bzw. anpassen. Er sollte einfach die Datei unterhalb vom Verzeichnis D:\Temp\OrdnerA mit der Datei unterhalb D:\Temp\OrdnerB vergleichen.
Mitglied: Snowman25
15.03.2013, aktualisiert um 12:04 Uhr
Hi netgearsdk,
01.
if %ERRORLEVEL% GTR 1 ( 
02.
	Echo "ist gleich" 
03.
) else ( 
04.
	Echo "ist nicht gleich" 
05.
)
Du benutzt dein IF-Statement falsch.

Übrigens vergleichst du DateiINHALTE und nicht DateiNAMEN!

Gruß
Snow
Bitte warten ..
Mitglied: netgearsdk
15.03.2013 um 12:52 Uhr
Cool danke dir @Snowman25
Wie vergleiche ich denn DateiNAMEN und nicht DateiINHALTE ?
LG
Bitte warten ..
Mitglied: Snowman25
15.03.2013 um 13:10 Uhr
Was möchtest du denn überhaupt machen? Ich kann mir sehr gut vorstellen, dass dein Ansatz auf leichtere Art und Weise gelöst werden kann. Warum möchtest du Ordner A mit B vergleichen?
btw: Ausprobieren soll beim skripten schon oft geholfen haben. Dann hättest du auch bemerkt dass fc <ordner 1> <ordner 2> folgendes Ausgibt: FC: Kann Ordner 1 nicht öffnen - Datei oder Ordner nicht vorhanden.
Liegt daran, dass fc nunmal nur Dateien vergleichen kann. Errorlevel hierbei ist 2.
Bitte warten ..
Mitglied: bastla
15.03.2013, aktualisiert um 13:16 Uhr
Hallo netgearsdk!

Wenn es im Verzeichnis "D:\Temp\OrdnerA" tatsächlich nur genau eine Datei gibt, dann etwa so:
01.
for /f "delims=" %%i in ('dir /b/a-d "D:\Temp\OrdnerA"') do if exist "D:\Temp\OrdnerB\%%~nxi" ( 
02.
    echo "ist genau gleich"  
03.
) else (  
04.
    echo "ist nicht gleich"  
05.
) 
Natürlich wird so nur geprüft, ob es im "OrdnerB" eine gleichnamige Datei gibt, nicht, ob dort ev mehrere Dateien vorhanden wären ...

Grüße
bastla

P.S.: Natürlich hätte anstatt "%%~nxi" auch "%%i" genügt - aber aus edukativen Gründen ...
Bitte warten ..
Mitglied: format-c
23.03.2013 um 11:50 Uhr
@netgearsdk

Abgesehen davon, dass, wie schon erwähnt wurde, fc Dateien nach Inhalten vergleicht, hast du in deinem Skript die Unterscheidungsfälle vertauscht.
Wenn das Ergebnis positiv ist, d.h. wenn die Dateien gleich sind, ist der Errorlevel gleich 0, andernfalls ist er 1 oder höher. (Es ist ja auch kein "Successlevel" ) D.h. if errorlevel 1, sind sie nicht gleich.
Außerdem ist if errorlevel 1 ... äqiuvalent zu if %errorlevel% GEQ 1 ..., also ">=" und nicht GTR, wie Snowman25 sagt (siehe if /?).

Grüße
format-c
Bitte warten ..
Mitglied: format-c
23.03.2013 um 11:55 Uhr
Zitat von bastla:
Natürlich wird so nur geprüft, ob es im "OrdnerB" eine gleichnamige Datei gibt, nicht, ob dort ev mehrere Dateien vorhanden wären ...

Mehrere gleichnamige Dateien in einem Ordner gibt es eh nicht.
Bitte warten ..
Mitglied: bastla
23.03.2013, aktualisiert um 17:09 Uhr
@ format-c
Mehrere gleichnamige Dateien in einem Ordner gibt es eh nicht.
Die Spitzfindigkeit "gleiche Namen, aber unterschiedliche Dateitypen in einem Ordner" können wir uns ja wohl sparen , daher nur die elaborierte Form der obigen Aussage: Aufgrund von
die Datei unterhalb vom Verzeichnis D:\Temp\OrdnerA mit der Datei unterhalb D:\Temp\OrdnerB vergleichen
stand die (bisher unwidersprochene) Annahme, dass es in jedem Ordner nur eine Datei geben sollte, im Raum - deshalb habe ich zur Sicherheit darauf hingewiesen, dass nur geprüft würde, ob es
im "OrdnerB" eine gleichnamige Datei gibt,
nicht aber, ob dort weitere (= zusätzliche, sogar anders benannte ) Dateien vorhanden wären - ob netgearsdk das überhaupt wissen wollte, werden wir vielleicht irgendwann noch erfahren ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Vergleich einer Zeichenfolge in zwei Dateinamen

Frage von hongziehongBatch & Shell3 Kommentare

Hallo zusammen, ich möchte den Inhalt (ich weiß nicht, ob Variable das richtige Wort dafür wäre) zweier Dateinamen jeweils ...

Batch & Shell

Batch - Verzeichnisnamen mit Dateinamen vergleichen, wenn vorhanden eine .log-Datei kopieren und zu .txt umbenennen

gelöst Frage von BlattlausOGBatch & Shell9 Kommentare

Hallo, ich versuche gerade vergeblichst über die Google-Suche ein passendes Script für meine Anwendung zu finden, doch leider scheint ...

Batch & Shell

Batch vergleich von zwei dateien

gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Sonstige Systeme

Batch Dateinamen zerlegen

Frage von MummelSonstige Systeme5 Kommentare

Hallo Liebe Leute, hoffe mir kann einer helfen. Ich soll eine Batch schreiben, die eine abfrage macht. (Soll ein ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 14 StundenHumor (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 22 StundenRouter & 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 1 TagSicherheit

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 1 TagWindows 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
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

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

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