tommhii
Goto Top

Ordner Inhalte vergleichen

ich möchte 2 Ordner vergleichen in den beiden Ordnern befinden sich rtf Dateien.

Hallo,
ich möchte aus 2 Ordnern (Test1und Test2) Dateien (.rtf) mit gleichen Namen rausfiltern diese in ein Log schreiben und anschließend die doppelte Datei in einen dritten Ordner kopieren. Hat jemand eine Idee wie man dies lösen kann .

Danke
Gruß Tommhii

Content-ID: 146714

Url: https://administrator.de/contentid/146714

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

91820
91820 12.07.2010 um 15:31:26 Uhr
Goto Top
Ich nehme an, dass du Windows XP oder 7 hast und du schon an die "Suchen" Funktion gedacht hast? *g*
tommhii
tommhii 12.07.2010 um 15:35:47 Uhr
Goto Top
ja danke für den Tip hab ich schon getan aber nix passendes gefunden.

ich habe windows xp
91820
91820 12.07.2010 um 15:38:35 Uhr
Goto Top
Was heisst nicht passendes gefunden?
Wenn du 2 Ordner hast mit rtf Dateien, dann haben diese Dateien doch alle unterschiedliche Namen!
Wenn du den Namen deiner gesuchten Datei in die Suchmaske eintippst müsste er Sie doch finden??? Wo ist das Problem?
Wie viele Dateien sind denn in jedem Ordner enthalten?
GunterR
GunterR 12.07.2010, aktualisiert am 18.10.2012 um 18:42:48 Uhr
Goto Top
Vielleicht hilft dir das
Automatisches vergleichen und kopieren von Dateien

Gruß
Gunter
77559
77559 12.07.2010 um 15:46:30 Uhr
Goto Top
Hallo Tommhii,
Da ja nicht klar ist ob die beiden Dateien Identisch sind, welche willst du denn kopieren?
@Echo ff
Set Dir1=D:\Test
Set Dir2=D:\Test\2
Set Ext=.rtf
Set Dest=X:\Pfad
Set "Log=%UserProfile%\Your.Log"  
Pushd "%Dir1%"  
For /f "delims=" %%A in ('Dir /B/A-D "*%Ext%" ') Do If Exist "%Dir2%\%%~nxA" (  
  >>%Log% Echo.Doppelt: %%~nxA
  Copy "%%~fA" "%Dest%\"  
)
PopD
(Only braintested.)

Gruß
LotPings
tommhii
tommhii 12.07.2010 um 15:58:22 Uhr
Goto Top
Zitat von @91820:
Was heisst nicht passendes gefunden?
Wenn du 2 Ordner hast mit rtf Dateien, dann haben diese Dateien doch alle unterschiedliche Namen!
Wenn du den Namen deiner gesuchten Datei in die Suchmaske eintippst müsste er Sie doch finden??? Wo ist das Problem?
Wie viele Dateien sind denn in jedem Ordner enthalten?

okay hab es vielleicht formuliert ich möchte das automatisiert mit Hilfe eines Dos Batch tun.
- ich befülle die Ordner mit ca 200 Dateien täglich mit Filetransfer und um auszuschließen das ich eine Datei doppelt habe möchte ich eine batch starten die dies mir tut und mir mittels einer Log Datei , die Datei mit dem gleichen Namen anzeigt.
die Dateinamen haben folgendes Schema Ordner 1: xxxxxxxVOxxxxxxx.rtf (x -> Numerisch) Ordner 2: xxxxxxxVRxxxxxxx.rtf
-doppelte Datei wärez.B. 1111111VR2222222.rtf
1111111VO2222222.rtf bei dem Vergleich der Dateien soll das VO und VR nicht berücksichtigt werden.

Gruß Tommhii
tommhii
tommhii 12.07.2010 um 16:00:11 Uhr
Goto Top
Ich hänge die Antwort nochmal hier unten ran bin da etwas verrutscht mit meiner Antwort

okay hab es vielleicht formuliert ich möchte das automatisiert mit Hilfe eines Dos Batch tun.
- ich befülle die Ordner mit ca 200 Dateien täglich mit Filetransfer und um auszuschließen das ich eine Datei doppelt habe möchte ich eine batch starten die dies mir tut und mir mittels einer Log Datei , die Datei mit dem gleichen Namen anzeigt.
die Dateinamen haben folgendes Schema Ordner 1: xxxxxxxVOxxxxxxx.rtf (x -> Numerisch) Ordner 2: xxxxxxxVRxxxxxxx.rtf
-doppelte Datei wärez.B. 1111111VR2222222.rtf
1111111VO2222222.rtf bei dem Vergleich der Dateien soll das VO und VR nicht berücksichtigt werden.

kopieren möchte ich die doppelte Datei aus dem 2. Ordner (Test 2)

Gruß Tommhii
77559
77559 12.07.2010 um 16:25:56 Uhr
Goto Top
Das ist aber ein recht wichtiges Detail das du da unterschlagen hattest.
Ich gehe mal davon aus das in Ordner1 nur Vo und in Ordner2 nur VR vorkommt.

@Echo off
Set Dir1=D:\Test
Set Dir2=D:\Test\2
Set Ext=.rtf
Set Dest=X:\Pfad
Set "Log=%UserProfile%\Your.Log"  
Pushd "%Dir1%"  
For /f "delims=" %%A in (  
  'Dir /B/A-D "*%Ext%" '  
    ) Do Set "File=%~nxA" & Call :ProcFile ||(  
  >>%Log% Echo.Doppelt: %%~nxA
  Copy "%%~fA" "%Dest%\"  
)
PopD
Goto :Eof
:ProcFile
If Exist "%Dir2%\%File:VO=VR%" Exit /B 1  

Ebenfalls nur braintested

Gruß
LotPings
77559
77559 12.07.2010 um 16:53:24 Uhr
Goto Top
Ich mach mal die Ingrid face-smile

Sorry hab den letzten Absatz zu spät gelesen, das du den VR kopieren willst.

@Echo off
Set Dir1=D:\Test\1
Set Dir2=D:\Test\2
Set Ext=.rtf
Set Dest=D:\Test\3
Set Log="%~dpn0.Log"  
Pushd "%Dir1%"  
For /f "delims=" %%A in (  
  'Dir /B/A-D "*%Ext%" '  
    ) Do Set "File=%%~nxA" & Call :ProcFile  
PopD
Goto :Eof
:ProcFile
Set "VRFile=%Dir2%\%File:VO=VR%"   
If Not Exist "%VRFile%" Goto :Eof  
>>%Log% Echo.Doppelt: "%VRFile%"  
Copy "%VRFile%" "%Dest%\"  

Gruß
LotPings

Fehlendes % Zeichen nachgereicht , Pfade geändert und getestet - funktioniert.
tommhii
tommhii 12.07.2010 um 16:55:01 Uhr
Goto Top
ja sorry ,hab das wohl nicht am Anfang gleich so detaliert beschrieben
richtig Ordner 1 enthält nur VO Dateien und Ordner 2 enthält VR Dateien

Gruß Tommhii
Biber
Biber 12.07.2010 um 17:08:14 Uhr
Goto Top
[OT]

Zitat von @tommhii:
ja sorry ,hab das wohl nicht am Anfang gleich so detaliert beschrieben
Jo.... möglicherweise...
Falls es dir entfallen sein sollte seit damals - die erste Spezifikation sah so aus:

Zitat von @tommhii:
ich möchte aus 2 Ordnern (Test1und Test2) Dateien (.rtf) mit gleichen Namen rausfiltern diese in ein Log schreiben und anschließend die doppelte Datei
in einen dritten Ordner kopieren. Hat jemand eine Idee wie man dies lösen kann .

Dafür, dass das ganze Szenario anderthalb Stunden jung ist hat es sich schon schnell weiterentwickelt.
Das ist ja, als würde eine politische Splitterpartei vor der Wahl ihr gesamtes Programm zusammenfassen in eine Hauptschul-Blase "Mehr Netto vom Brutto"
und nach der Wahl erstmal diesen Satz jahrelang von einem internationalen Expertengremium auf Steuerzahlerkosten analysieren lassen.


@77559
Ich weiss nicht, ob ich so hochdeutsch wie du reagiert hätte mit "Das ist aber ein recht wichtiges Detail das du da unterschlagen hattest.".
Ich wäre vermutlich ausgetickt an so einem Montag.

Grüße
Biber
[/OT]
GunterR
GunterR 12.07.2010 um 17:14:00 Uhr
Goto Top
@Biber

Ich glaube ich wähle dann doch keine Splitterpartei face-smile

Gruß
Gunter
Biber
Biber 12.07.2010 um 17:20:45 Uhr
Goto Top
[Re. OT]

Moin GunterR,

Zitat von @GunterR:
@Biber

Ich glaube ich wähle dann doch keine Splitterpartei face-smile
War doch nur ein total an den Haaren herbeigezogenes Beispiel - so was Dreistes gibts doch gar nicht wirklich.. ..sagt meine Guido immer..

Grüße
Biber
[/Re. OT]
GunterR
GunterR 12.07.2010 um 17:22:44 Uhr
Goto Top
Zitat von @Biber:
[Re. OT]

Moin GunterR,

> Zitat von @GunterR:
> ----
> @Biber
>
> Ich glaube ich wähle dann doch keine Splitterpartei face-smile
War doch nur ein total an den Haaren herbeigezogenes Beispiel - so was Dreistes gibts doch gar nicht wirklich.. ..sagt meine
Guido immer..


Grüße
Biber
[/Re. OT]


Ich fand (sorry, finde) es gut, zudem stimmt es ja auch.

Gruß
Gunter
77559
77559 12.07.2010 um 17:50:57 Uhr
Goto Top
Zitat von @Biber:
@77559
Ich weiss nicht, ob ich so hochdeutsch wie du reagiert hätte mit "Das ist aber ein recht wichtiges Detail das du da unterschlagen hattest.".
Ich wäre vermutlich ausgetickt an so einem Montag.
Ich bin halt gut drauf heute face-wink

Nachdem die Spring-vor-die-Brust-Bolzländer nicht Weltmeister geworden sind ....

Gruß
LotPings
tommhii
tommhii 13.07.2010 um 07:00:21 Uhr
Goto Top
Ja aber das Spiel von Spanien war auch nicht weltmeisterlich ich würde sagen die letzten beiden Spiele hatte Spanien nur Glück. Ich dank Dir erstmal für deine Hilfe werd es heute mal ausprobieren.

Gruß
Tommhii


hab mal deinen batch probiert läuft leider nicht, aber trotzdem Danke für den Versuch zu helfen, was ja bei manchen Menschen nicht so selbstvertändlich ist
Connor1980
Connor1980 13.07.2010 um 08:31:15 Uhr
Goto Top
Hallo,

da hat sich der gute LotPings so viel Mühe gemacht, da wäre es doch nur Hilfreich und nett auch zu sagen, was nicht funktioniert. Evlt. ist er selber oder jemand anders auch nochmal bereit Hilfe zu leisten.

Grüße
77559
77559 13.07.2010, aktualisiert am 18.10.2012 um 18:42:48 Uhr
Goto Top
@coonor1980, Stimm vollkommen,

habe es bis jetzt nicht getestet und deshalb ein fehlendes %-Zeichen übersehen.

Aber die Fehlermeldung:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~nxA" & Call :ProcFile
wäre schon hilfreich gewesen.

Ich habe diesen obigen Batch angepasst.

Gruß
LotPings
tommhii
tommhii 13.07.2010 um 13:05:41 Uhr
Goto Top
Danke LotPings

Gruß
Tommhii