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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batch Dateivergleich: Pfad auslesen

Mitglied: icepick1661

icepick1661 (Level 1) - Jetzt verbinden

11.03.2020, aktualisiert 22:54 Uhr, 329 Aufrufe, 7 Kommentare

Hallo,

ich bin neu hier, grüße also alle; ich habe ein Batch-Problem, mit dem ich trotz langer Googelei einfach nicht weiter komme.

Was ich möchte:
-> Dateivergleich in zwei Laufwerken ("Quelle" und "Ziel"); wenn eine Datei fehlt, soll sie kopiert werden.

Ich schaffe es, ein Batch zu schreiben, das dieses schafft - allerdings nur, solange ich statisch fixe Quell- und Ziellaufwerke habe.

Beispiel: Unter einem Laufwerkspfad (z. B. "D:\Ordner1\Ordner2\" als "Stamm"; 'Set Source') liegen Dateien in verschiedenen weiteren Unterordnern. Der "Stamm" ist also bekannt, die weiteren Unterordner wechseln. Deswegen möchte ich in eine Variable diese weiteren Pfade schreiben, so dass ich am Ende habe:
"Quelle": %Source%%[Pfadvariable]%%Dateiname%

In den unten eingestellten Codes bekomme ich aber als %%~pi immer nur "C:\Windows\System32\" heraus, der Dateiname wird perfekt gefunden.
Codeversuch 1:

Set Source=E:\AAA_Test\Quelle\
Set Target=E:\AAA_Test\Ziel\

for /f "delims=" %%i in ('dir /b/a-d "%Source%" %cd%') do (

echo i: %%i; Pfada: %%~di; Pfadb: %%~pi; Pfadb: %%~ni
pause
)

echo i: Dok3.doc (korrekt)
echo Pfada: C: (muss "E:" lauten)
echo Pfadb: \Windows\System32\ (muss gleich Variable "Source" lauten)
echo Pfadc: Dok3 (korrekt)

Ein "Set Datei"%%i" funktioniert nicht, das Echo ist "NULL", also nichts.

Ich dachte, ich probiers mal ohne Klammern nach 'do':

for /f "delims=" %%i in ('dir /b/a-d "%Source%" "%cd%" ') do set "Name=%%~dpi"


echo Name: %Name%;
pause

echo Name: C:\Windows\System32\

Ich habe noch mehr ausprobiert, komme aber einfach nicht auf das korrekte Verzeichnis (E:\AAA_Test\Quelle). Was also muss man tun, damit als Suchergebnis der korrekte Pfad - gerne auch mit der Datei plus Endung hinten dran - herauskommt? Damit komme ich dann klar, denke ich. Danke für eure Hilfe; ich weiß, ich bin nicht so supergut beim Batchschreiben - daher würde ich mich über detaillierte Codes freuen.

Danke schon mal an alle Helferinnen und Helfer!
Mitglied: UserUW
11.03.2020 um 23:32 Uhr
Zitat von icepick1661:
Was ich möchte:
-> Dateivergleich in zwei Laufwerken ("Quelle" und "Ziel"); wenn eine Datei fehlt, soll sie kopiert werden.

Es gibt dazu gut funktionierende fertige Programme. Zum Beispiel "WinMerge". (Ich benutze es. M.W. ist es sogar kostenlos.) Ulrich
Bitte warten ..
Mitglied: mayho33
12.03.2020 um 09:10 Uhr
Hi!

Warum verwendest du nicht einfach RoboCopy ?

Sind Ordner nicht vorhanden, kümmert sich RC darum diese anzulegen. Die Quelle wird also als Grundgerüst für das Ziel verwendet. Soll es in beide Richtungen sein, dann drehst du Quelle und Ziel einfach um und RC kopiert von B nach A was in A nicht vorhanden ist.

2-Zeiler, Fertig!
Bitte warten ..
Mitglied: TK1987
LÖSUNG 12.03.2020, aktualisiert um 10:51 Uhr
Moin.

Zitat von icepick1661:
In den unten eingestellten Codes bekomme ich aber als %%~pi immer nur "C:\Windows\System32\" heraus, der Dateiname wird perfekt gefunden.
Der Output des dir-Befehls enthält keinen Pfad, wenn man den Schalter /s (rekursive Ausführung) nicht angibt.
schmeisst also nur den Dateinamen und die Erweiterung der enthaltenen Elemente heraus. Die For-Schleife kennt den Pfad fortan nicht mehr.

Du musst entweder zusätzlich /s angeben (dadurch werden jedoch auch alle Elemente in Unterordnern aufgelistet, was ungewünscht sein kann), oder du gibst den Pfad einfach immer mit an.

Gruß Thomas
Bitte warten ..
Mitglied: icepick1661
12.03.2020 um 12:31 Uhr
Moin Thomas,

Danke für deine Antwort, das ist die Lösung.

Mit /s hatte ich es eigentlich schon probiert, jetzt nochmal auf deinen Hinweis hin. Aber offenbar noch nicht mit dem oben von dir zitierten Code.

Ich stelle den funktionierenden Code nochmal ein:

Set Source=E:\AAA_Test\Quelle\
Set Target=E:\AAA_Test\Ziel\

for /f "delims=" %%i in ('dir /s/b/a-d "%Source%" %cd%') do (

echo i: %%i; Pfada: %%~di; Pfadb: %%~pi; Pfadb: %%~ni
pause
)

Hinweis an dich: echo Quelle= "%Source%\%%i" geht nicht, weil zwischen %Source% und %%i noch variable Ordnernamen mit Unterordnern in verschiedener Zahl vorkommen - ich müsste also viele "Sources" benennen...

Danke vielmals!
Bitte warten ..
Mitglied: UserUW
13.03.2020 um 13:33 Uhr
Nur aus Neugierde: Warum ziehst Du es vor, viel Zeit damit kaputt zu machen, Dir einen eigenen Job hinzubasteln, statt ein wirklich rund laufendes, fertiges und dazu auch noch kostenloses Programm zu benutzen?

Ulrich
Bitte warten ..
Mitglied: icepick1661
13.03.2020 um 22:07 Uhr
Weil es um eine kleinere Abteilung in einem größeren Batch geht, in dem nicht nur Dateivergleiche stattfinden. Außerdem lerne ich ja was dabei.
Bitte warten ..
Mitglied: mayho33
15.03.2020 um 16:02 Uhr
Zitat von icepick1661:

Weil es um eine kleinere Abteilung in einem größeren Batch geht, in dem nicht nur Dateivergleiche stattfinden. Außerdem lerne ich ja was dabei.

Hm... Wäre es dann nicht sinnvoller sich mit etwas zeitgemäßerer Technologie zu befassen? Etwa Powershell. Das lässt sich auch von einem Batch aus weiter verarbeiten.

Wir haben in unserer Abteilung fast alle Batch-Scripts zu PS adaptiert, weil...

A) Kaum einer der jüngeren Mitarbeiter noch was mit Batch anfangen kann und will
B) auch die alten Hasen die Vorteile von PS erkannt haben und sich sowieso über die Kilometer an sinnlosem Code ärgern
C) mit PS wesentlich mehr, wesentlich einfacher umzusetzen ist


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

Batch mit variablem Java-Pfad möglich?

gelöst Frage von fturbanBatch & Shell2 Kommentare

Hallo zusammen, bin neu hier und mich treibt gerade die folgende Frage um: Ich habe ein vorgegebenes Batch-Skript, in ...

Batch & Shell

Win-Batch - warum wird falscher Pfad übergeben

Frage von jan999Batch & Shell4 Kommentare

Moin! ich habe noch einmal eine Frage - vermutlich etwas blind, oder es liegt am "fehlenden Kaffee" (Insider zum ...

Batch & Shell

Batch Zeile suchen und ersetzen Variabler Pfad

gelöst Frage von pi0h.kkBatch & Shell6 Kommentare

Hallo, ich stehe leider vor einem kleinen Problem was ich nicht in den Griff bekommen. Ich möchte in mehreren ...

Batch & Shell

Per Batch Winrar entpacken - Probleme bei Pfad

gelöst Frage von ConcurveBatch & Shell7 Kommentare

Hallo zusammen, die unten gezeigte Batch soll in einem bestimmten Ordner nach *.zip und *.rar suchen und diese dann ...

Neue Wissensbeiträge
Sicherheits-Tools

Erfahrungsbericht - TrendMicro WFBS Advanced v10.0 (aktuelles Patchlevel) und neues Windows 10 2004 als Funktionsupgrade

Information von VGem-e vor 16 StundenSicherheits-Tools2 Kommentare

Servus Kollegen, grad bei einer Außenstelle mit TrendMicro WFBS Advanced v10.0 das Funktionsupgrade für Windows 10 2004 testweise in ...

Netzwerkgrundlagen

IPv6: pfSense hinter Fritz!Box 6360 (Kabel Deutschland)

Anleitung von FA-jka vor 17 StundenNetzwerkgrundlagen5 Kommentare

Hallo, Vorab Ich beschreibe hier lediglich die IPv6-Anbindung. Informationen zu IPv4 sollten selbsterklärend sein. In meinem Szenario verwende ich ...

Grafik

Performance von Onboard Grafik mit DualChannel RAM verbessern

Anleitung von NetzwerkDude vor 19 StundenGrafik

Moin, das ist ist Hardwarekreisen natürlich ein alter Hut, aber falls ihr vom Chef nen RAM-Riegel bekommt fürs Notebook ...

Windows 10

Windows 10 Mai 2020 Update ab sofort verfügbar

Information von Frank vor 19 StundenWindows 101 Kommentar

Microsoft hat das Windows 10 Mai 2020 Update mit integriertem Linux-Kernel und Cortana-Updates veröffentlicht. Auch Windows Server 10 Version ...

Heiß diskutierte Inhalte
Weiterbildung
Umschulung zum FISI
gelöst Frage von Sabo86Weiterbildung29 Kommentare

Hallo zusammen, kurz zu mir: ich bin 33 und möchte in Zukunft im Bereich Systemadministration arbeiten. Da ich vor ...

TK-Netze & Geräte
Günstige Telefonanlagen Lösung für 5 Mitarbeiter
Frage von WashingtonTK-Netze & Geräte25 Kommentare

Hi, eine kleine Firma mit nur einem Standort bezieht eine Bürofläche, als Provider wurde die Telekom favorisiert. Es steht ...

Tipps & Tricks
Kostenlose alternative zu Teamviewer
Frage von andyw5Tipps & Tricks21 Kommentare

Moin an alle, kann mir jemand eine kostenlose einfache alternative zum Teamviewer/Fastviewer nennen? Wie möchten einen PC Win7/10 aus ...

Windows 10
Windows 10 Version 200"4"
gelöst Frage von SarekHLWindows 1019 Kommentare

Guten Morgen zusammen, weiß jemand, wann das MediaCreationTool für die Version 200"4" veröffentlicht wird, oder wo man es evtl. ...