Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Textdateien aus mehreren Unterordnern in einen anderen Ordner auf einer anderer Partition herauskopieren, miteinander vergleichen und die Ergebnisse als neue Texdateien in diesem neuen Ordner ausgeben.

Frage Entwicklung Batch & Shell

Mitglied: takitano

takitano (Level 1) - Jetzt verbinden

04.08.2011, aktualisiert 12:11 Uhr, 3621 Aufrufe, 10 Kommentare

Hallo an alle!

Auf dem Laufwerk E: befindet sich ein Ordner namens "Autoteile" mit 5 Unterordnern "Alle", "Toyota", "Mazda", "Daihatsu", "Subaru" Jeder von diesen Ordnern beinhaltet eine Textdatei mit Seriennummern zu verschiedenen Autoteilen. Einige davon sind identisch. Auf dem Laufwerk C: befindet sich ein leeres Ordner namens "Vergleich".
Die Aufgabe:
1) Alle Textdateien aus den Unterverzeichnissen auf dem Laufwerk E ins Verzeichnis "Vergleich" kopieren (nicht verschieben und ohne Ordner!).
2) Die Inhalte der kopierten Texdateien von 4 Unterordner: "Toyota", "Mazda", "Subaru", "Daihatsu" mit dem Inhalt der Textdatei aus dem Verzeichnis "Alle" vergleichen. Dabei sollten nur die gleichen Zeilen in eine neue Textdatei herausgegeben werden.
3) Nach der Sichtung der erstellten Textdateien sollen alle Dateien im Verzeichnis "Vergleich" wieder gelöscht werden.

Ich habe das Problem wie folgt gelöst, möchte aber was kompakteres sehen (nur per Batch!!!):

01.
@echo off & setlocal 
02.
 
03.
set "Ziel=C:\Vergleich" 
04.
set "Start1=E:\Autoteile\Alle" 
05.
set "Start2=E:\Autoteile\Toyota" 
06.
set "Start3=E:\Autoteile\Mazda" 
07.
set "Start4=E:\Autoteile\Daihatsu" 
08.
set "Start5=E:\Autoteile\Subaru" 
09.
 
10.
pushd "%Ziel%" 
11.
 
12.
xcopy "%Start1%" "%Ziel%" /q /y 
13.
xcopy "%Start2%" "%Ziel%" /q /y 
14.
xcopy "%Start3%" "%Ziel%" /q /y 
15.
xcopy "%Start4%" "%Ziel%" /q /y 
16.
xcopy "%Start5%" "%Ziel%" /q /y 
17.
 
18.
comm -12 alle.txt toyouta.txt  > vergleich_toyota.txt 
19.
comm -12 alle.txt mazda.txt  > vergleich_mazda.txt 
20.
comm -12 alle.txt daihatsu.txt  > vergleich_daihatsu.txt 
21.
comm -12 alle.txt subaru.txt  > vergleich_subaru.txt 
22.
 
23.
echo. 
24.
echo Sehen Sie sich die Ergebnisse im Verzeichnis "%Ziel%" an. 
25.
echo. 
26.
PAUSE 
27.
 
28.
 
29.
del "%Ziel%" /s 
30.
 
31.
goto :eof
Danke im Voraus!
Philipp Takitano
Mitglied: takitano
04.08.2011 um 12:07 Uhr
Ich habe hier gesucht und (Danke an Bastla! ) so was zusammen gebastelt, aber es funktioniert nicht:

01.
@echo off & setlocal 
02.
 
03.
set "Ziel=C:\Vergleich" 
04.
set "Start=E:\Autoteile" 
05.
set "Typ=txt" 
06.
 
07.
for /r "%Start%" %%i in (*.%Typ%) do call :ProcessFile "%%i" 
08.
 
09.
:ProcessFile 
10.
copy %1 "%Ziel%" 
11.
 
12.
comm -12 alle.txt toyouta.txt  > vergleich_toyota.txt 
13.
comm -12 alle.txt mazda.txt  > vergleich_mazda.txt 
14.
comm -12 alle.txt daihatsu.txt  > vergleich_daihatsu.txt 
15.
comm -12 alle.txt subaru.txt  > vergleich_subaru.txt 
16.
 
17.
echo. 
18.
echo Sehen Sie sich die Ergebnisse im Verzeichnis "%Ziel%" an. 
19.
echo. 
20.
PAUSE 
21.
 
22.
del "%Ziel%" /s 
23.
 
24.
goto :eof
Bitte warten ..
Mitglied: Skyemugen
04.08.2011 um 12:14 Uhr
Aloha,

du solltest wohl erst einmal :ProcessFile abschließen, da momentan ab Zeile 10 alles dazugehört aber eigentlich ab Zeile 12 ja wieder das Hauptskript sein sollte, du also in Zeile 11 goto :eof hinzufügen solltest und dann entweder ein goto :irgendwas direkt nach der Schleife setzt oder aber den :ProcessFile ganz ans Ende setzt, da dieser sonst erneut aufgerufen wird.

Und zum Testen bitte echo on und funktioniert nicht ist ein wenig ungenau.

greetz André
Bitte warten ..
Mitglied: Friemler
04.08.2011 um 12:25 Uhr
Hallo takitano,

teste mal das hier:
01.
@echo off & setlocal 
02.
 
03.
set "Quelle=E:\Autoteile" 
04.
set "Ziel=E:\Vergleich" 
05.
set "Master=Alle.txt" 
06.
 
07.
for /d %%f in ("%Quelle%\*.*") do ( 
08.
  xcopy "%%f" "%Ziel%" /q /y > NUL 
09.
10.
 
11.
for /f "delims=" %%f in ('dir /b /a:-d "%Ziel%\*.txt" 2^>NUL ^| findstr /i /v /e /c:"%Master%"') do ( 
12.
  comm -12 "%Ziel%\%Master%" "%Ziel%\%%f"  > "%Ziel%\Vergleich_%%f" 
13.
14.
 
15.
echo. 
16.
echo Sehen Sie sich die Ergebnisse im Verzeichnis "%Ziel%" an. 
17.
echo. 
18.
pause 
19.
 
20.
del /s "%Ziel%"
Gruß
Friemler
Bitte warten ..
Mitglied: takitano
04.08.2011 um 12:27 Uhr
Danke für den Tipp! Ich werde es später probieren - der batch hat jetzt alle meine batch-dateien in seinem Verzeichnis gelöscht..... Muss ich zuerst die retten!!!
Bitte warten ..
Mitglied: Skyemugen
04.08.2011 um 12:29 Uhr
Aloha,

beim testen arbeitet man entweder

  • mit Testdateien
oder
  • mit echo del, sprich Vorschaubefehlen

greetz André

@Friemler, gib' den Usern doch nicht immer harte del Befehle, die machen nur klick, klick *gg*
Bitte warten ..
Mitglied: Friemler
04.08.2011 um 12:36 Uhr
Hallo Skyemugen,

in der Form des DEL-Befehls wird man explizit nochmal gefragt, ob man löschen will. Außerdem: Das Denken kann den Usern keiner abnehmen...

Gruß
Friemler
Bitte warten ..
Mitglied: takitano
04.08.2011 um 12:36 Uhr
Hallo Fiemier.

Hat fast geklappt. Nur der Vergleich funktioniert nicht korrekt - die Dateien werden erstellt, aber keine Ergebnisse da sind.
Bitte warten ..
Mitglied: takitano
04.08.2011 um 12:39 Uhr
Zitat von Skyemugen:
Aloha,

beim testen arbeitet man entweder

  • mit Testdateien
oder
  • mit echo del, sprich Vorschaubefehlen

greetz André

@Friemler, gib' den Usern doch nicht immer harte del Befehle, die machen nur klick, klick *gg*

Das weiß ich, Habe doch meine 2.Kopien gelöscht!
Bitte warten ..
Mitglied: Friemler
04.08.2011 um 12:40 Uhr
Hallo takitano,

Du hast wahrscheinlich eine (von mir zu schnell eingestellte) Version, bei der vor dem COMM-Befehl noch ein ECHO steht. Kopiere Dir den Code nochmal, habe da noch ein paar Kleinigkeiten geändert.

Gruß
Friemler
Bitte warten ..
Mitglied: takitano
04.08.2011 um 12:46 Uhr
Danke! Hat geklappt. Nur die Ergebnisse wollte ich eigenlich auf C: sehen. Habe es aber korrigiert.!
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst Transportregel für neue Beiträge in öffentlichem Ordner (2)

Frage von ahstax zum Thema Exchange Server ...

Outlook & Mail
Outlook 2010 freigegebene Ordner und Unterordner (4)

Frage von alpardac zum Thema Outlook & Mail ...

Windows Installation
Win 10 neu instalieren auf ssd (Partition gelöscht) (13)

Frage von Immortep99 zum Thema Windows Installation ...

Neue Wissensbeiträge
Vmware

Heise Newsticker: Betrifft die Desktopprodukte von VMware

Information von Penny.Cilin zum Thema Vmware ...

Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Freigabe aus anderem Netz nicht erreichbar (44)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen (14)

Frage von Akcent zum Thema Windows 10 ...