
93578
04.08.2011, aktualisiert um 12:11:31 Uhr
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.
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!!!):
Danke im Voraus!
Philipp Takitano
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!!!):
@echo off & setlocal
set "Ziel=C:\Vergleich"
set "Start1=E:\Autoteile\Alle"
set "Start2=E:\Autoteile\Toyota"
set "Start3=E:\Autoteile\Mazda"
set "Start4=E:\Autoteile\Daihatsu"
set "Start5=E:\Autoteile\Subaru"
pushd "%Ziel%"
xcopy "%Start1%" "%Ziel%" /q /y
xcopy "%Start2%" "%Ziel%" /q /y
xcopy "%Start3%" "%Ziel%" /q /y
xcopy "%Start4%" "%Ziel%" /q /y
xcopy "%Start5%" "%Ziel%" /q /y
comm -12 alle.txt toyouta.txt > vergleich_toyota.txt
comm -12 alle.txt mazda.txt > vergleich_mazda.txt
comm -12 alle.txt daihatsu.txt > vergleich_daihatsu.txt
comm -12 alle.txt subaru.txt > vergleich_subaru.txt
echo.
echo Sehen Sie sich die Ergebnisse im Verzeichnis "%Ziel%" an.
echo.
PAUSE
del "%Ziel%" /s
goto :eof
Danke im Voraus!
Philipp Takitano
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170931
Url: https://administrator.de/forum/textdateien-aus-mehreren-unterordnern-in-einen-anderen-ordner-auf-einer-anderer-partition-herauskopieren-170931.html
Ausgedruckt am: 21.04.2025 um 05:04 Uhr
10 Kommentare
Neuester Kommentar
Aloha,
du solltest wohl erst einmal
Und zum Testen bitte
greetz André
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é
Hallo takitano,
teste mal das hier:
Gruß
Friemler
teste mal das hier:
@echo off & setlocal
set "Quelle=E:\Autoteile"
set "Ziel=E:\Vergleich"
set "Master=Alle.txt"
for /d %%f in ("%Quelle%\*.*") do (
xcopy "%%f" "%Ziel%" /q /y > NUL
)
for /f "delims=" %%f in ('dir /b /a:-d "%Ziel%\*.txt" 2^>NUL ^| findstr /i /v /e /c:"%Master%"') do (
comm -12 "%Ziel%\%Master%" "%Ziel%\%%f" > "%Ziel%\Vergleich_%%f"
)
echo.
echo Sehen Sie sich die Ergebnisse im Verzeichnis "%Ziel%" an.
echo.
pause
del /s "%Ziel%"
Gruß
Friemler
Aloha,
beim testen arbeitet man entweder
greetz André
@Friemler, gib' den Usern doch nicht immer harte del Befehle, die machen nur klick, klick *gg*
beim testen arbeitet man entweder
- mit Testdateien
- mit
echo del
, sprich Vorschaubefehlen
greetz André
@Friemler, gib' den Usern doch nicht immer harte del Befehle, die machen nur klick, klick *gg*