Pfadangaben aus Datei filtern und für Copy Job verwenden
Guten Tag,
ich bin neu hier, durchforste aber schon seit einiger Zeit euer Forum.
Nun zu meinem Anliegen...
Ich benötige eine Batch-Datei, die Pfadangaben (z.B. "X:\-\Audio\trackb.mp3") aus der Datei "playlist.xxx" von anderen Einträgen (#EXTINF:184,trackb) herausfiltert.
Evtl. ist das "\"-Zeichen dafür hilfreich?
plalist.xxx:
Die gefilterten Pfadangaben sollen dann als Quellpfade für einen Copy Job dienen.
*Die Pfadangaben können auch Leerzeichen enthalten!
Bsp:
"E:\Audio\dic1\dic12\tracka.mp3" --kopieren auf--> Datenträger Y:\Music
"X:\-\Audio\trackb.mp3" --kopieren auf--> Datenträger Y:\Music
"D:\Audio\Music\trackc.mp3" --kopieren auf--> Datenträger Y:\Music
... usw
Pfade müssen nicht erhalten werden.
D.h. aus "E:\Audio....\tracka.mp3" wird "Y:\Music\tracka.mp3".
- - - - - - - - - - -
Weniger Priorität hat dieser Fall - Wäre aber trotzdem sehr nett wenn ich auch hier Hilfe erhalten würde.
Die Playlist.xxx sollte in das Format der Playlist.yyy "konvertiert" werden.
plalist.xxx:
Playlist.yyy:
- - - - - - - - - - -
Nicht das es falsch rüber kommt. Ich habe schon selbst einige Zeit rumprobiert und mir diverse Threads durchgelesen aber ich kam nicht auf die für euch (Batchspezialisten) wahrsch. sehr einfache Lösung.
Also ich bedanke mich schon mal im Vorraus und hoffe auf so kompetente Problemlösungen wie ich sie immer vom Biber lese.
Schönen Abend noch!
Boris
ich bin neu hier, durchforste aber schon seit einiger Zeit euer Forum.
Nun zu meinem Anliegen...
Ich benötige eine Batch-Datei, die Pfadangaben (z.B. "X:\-\Audio\trackb.mp3") aus der Datei "playlist.xxx" von anderen Einträgen (#EXTINF:184,trackb) herausfiltert.
Evtl. ist das "\"-Zeichen dafür hilfreich?
plalist.xxx:
#EXTINF:187,tracka
E:\Audio\dic1\dic12\tracka.mp3
#EXTINF:184,trackb
X:\-\Audio\trackb.mp3
#EXTINF:189,trackc
D:\Audio\Music\trackc.mp3
Die gefilterten Pfadangaben sollen dann als Quellpfade für einen Copy Job dienen.
*Die Pfadangaben können auch Leerzeichen enthalten!
Bsp:
"E:\Audio\dic1\dic12\tracka.mp3" --kopieren auf--> Datenträger Y:\Music
"X:\-\Audio\trackb.mp3" --kopieren auf--> Datenträger Y:\Music
"D:\Audio\Music\trackc.mp3" --kopieren auf--> Datenträger Y:\Music
... usw
Pfade müssen nicht erhalten werden.
D.h. aus "E:\Audio....\tracka.mp3" wird "Y:\Music\tracka.mp3".
- - - - - - - - - - -
Weniger Priorität hat dieser Fall - Wäre aber trotzdem sehr nett wenn ich auch hier Hilfe erhalten würde.
Die Playlist.xxx sollte in das Format der Playlist.yyy "konvertiert" werden.
plalist.xxx:
#EXTINF:187,tracka
E:\Audio\Music\genreY\tracka.mp3
#EXTINF:184,trackb
X:\01\trackb.mp3
Playlist.yyy:
<MUSICFOLDERS>
<MUSICFOLDER DIR="" />
</MUSICFOLDERS>
<ENTRY TITLE="" TYPE="1">
<LOCATION DIR="/Audio/Music/genrey/" FILE="tracka.mp3" VOLUME="E:" />
<EXTDATA />
</ENTRY>
<ENTRY TITLE="" TYPE="1">
<LOCATION DIR="/01" FILE="trackb.mp3" VOLUME="X:" />
<EXTDATA />
</ENTRY>
... usw
- - - - - - - - - - -
Nicht das es falsch rüber kommt. Ich habe schon selbst einige Zeit rumprobiert und mir diverse Threads durchgelesen aber ich kam nicht auf die für euch (Batchspezialisten) wahrsch. sehr einfache Lösung.
Also ich bedanke mich schon mal im Vorraus und hoffe auf so kompetente Problemlösungen wie ich sie immer vom Biber lese.
Schönen Abend noch!
Boris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77149
Url: https://administrator.de/contentid/77149
Ausgedruckt am: 20.11.2024 um 12:11 Uhr
24 Kommentare
Neuester Kommentar
Hallo The-COMP und willkommen im Forum!
Falls Du auch mit mir vorlieb nehmen möchtest, könnte ich Dir für die Aufgabe 1 einen Oneliner anbieten:
Für den Einsatz in einer Batchdatei müsstest Du jeweils %%i schreiben und berücksichtigen, dass der "copy"-Befehl dann kommentarlos schon im Zielordner enthaltene gleichnamige Dateien überschreiben würde.
Falls Du erst einmal testen willst:
Damit werden die Kopierbefehle nur angezeigt, aber noch nicht ausgeführt.
Grüße
bastla
Falls Du auch mit mir vorlieb nehmen möchtest, könnte ich Dir für die Aufgabe 1 einen Oneliner anbieten:
@for /f "delims=" %i in ('findstr "\\" Playlist.xxx') do @copy "%i" Y:\Music\ >nul
Falls Du erst einmal testen willst:
@for /f "delims=" %i in ('findstr "\\" Playlist.xxx') do @echo copy "%i" Y:\Music\
Grüße
bastla
Hallo The-COMP!
bedeutet:
Durchsuche die Datei "Playlist.xxx" nach Zeilen, welche "\" enthalten (die Verdoppelung ist notwendig, da ein einfacher "\" für "findstr" als Hinweis gilt, dass das nächste Zeichen nicht interpretiert werden soll) und stelle jede dieser Zeilen als "%i" für die weitere Verarbeitung (nach dem "do") zur Verfügung.
Damit ev im Pfad enthaltene Leerzeichen (als Standardtrennzeichen der "for /f"-Anweisung) die Zeile nicht zerteilen können, wird mit "delims=" festgelegt, dass es überhaupt keine Trennzeichen geben, sondern die Zeile als Einheit verwendet werden soll.
Grüße
bastla
... eine If exist Schleife zu integrieren um nicht unnötig Daten zu überschreiben?
Eine "if exist"-Abfrage ist grundsätzlich nicht nötig, wenn Du direkt von der Kommandozeile arbeitest, da in diesem Fall der "copy"-Befehl vor dem Überschreiben eine Bestätigung verlangt. Ansonsten:@for /f "delims=" %i in ('findstr "\\" Playlist.xxx') do @if not exist "Y:\Music\%~nxi" @copy "%i" Y:\Music\ >nul
@for /f "delims=" %i in ('findstr "\\" Playlist.xxx')
Durchsuche die Datei "Playlist.xxx" nach Zeilen, welche "\" enthalten (die Verdoppelung ist notwendig, da ein einfacher "\" für "findstr" als Hinweis gilt, dass das nächste Zeichen nicht interpretiert werden soll) und stelle jede dieser Zeilen als "%i" für die weitere Verarbeitung (nach dem "do") zur Verfügung.
Damit ev im Pfad enthaltene Leerzeichen (als Standardtrennzeichen der "for /f"-Anweisung) die Zeile nicht zerteilen können, wird mit "delims=" festgelegt, dass es überhaupt keine Trennzeichen geben, sondern die Zeile als Einheit verwendet werden soll.
Grüße
bastla
Den Zweiten Fall würde ich so lösen:
miniversum
EDIT: PlOut-Problem Korrigiert
EDIT2: Fehlermeldungsproblem behoben
@echo off
set "PlIn=Plaxlist.xxx"
set "PlOut=Plaxlist.yyy"
echo ^<MUSICFOLDERS^>>"%PlOut%"
echo ^<MUSICFOLDER DIR="" /^>>>"%PlOut%"
echo ^</MUSICFOLDERS^>>>"%PlOut%"
for /f "delims=" %%i in ('findstr /V "^#" "%PlIn%"') do (
echo ^<ENTRY TITLE="" TYPE="1"^>>>"%PlOut%"
echo ^<LOCATION DIR="%%~pi" FILE="%%~nxi" VOLUME="%%~di" /^>>>"%PlOut%"
echo ^<EXTDATA /^>>>"%PlOut%"
echo ^</ENTRY^>>>"%PlOut%"
)set "PlIn=Plaxlist.xxx"
set "PlOut=Plaxlist.yyy"
echo ^<MUSICFOLDERS^>>"%PlOut%"
echo ^<MUSICFOLDER DIR="" /^>>>"%PlOut%"
echo ^</MUSICFOLDERS^>>>"%PlOut%"
for /f "delims=" %%i in ('findstr /V "^#" "%PlIn%"') do (
echo ^<ENTRY TITLE="" TYPE="1"^>>>"%PlOut%"
echo ^<LOCATION DIR="%%~pi" FILE="%%~nxi" VOLUME="%%~di" /^>>>"%PlOut%"
echo ^<EXTDATA /^>>>"%PlOut%"
echo ^</ENTRY^>>>"%PlOut%"
miniversum
EDIT: PlOut-Problem Korrigiert
EDIT2: Fehlermeldungsproblem behoben
@bastla
Wäre bei einer solchen Playlist nicht eher ein
In dem Fall wäre eine Suche nach "\" auch erfolglos, da ein Dateiname ja kein "\" enthalten darf.
miniversum
Wäre bei einer solchen Playlist nicht eher ein
for /f "delims=" %i in ('findstr /V "^#" Playlist.xxx')
statt einemfor /f "delims=" %i in ('findstr "\\" Playlist.xxx')
besser geeignet, da ja der "echte" Name des Liedes auch ein "\" enthalten könnte und es so bei einer Zeile ala#EXTINF:187,track\a
(wobei "track\a" Tatsächlich ein Name eines Liedes sein könnte) zu Problemen kommen könnte. Auf der anderen Seite werden je nach Programm und Einstellungen diese Playlisten auch so erzeugt das nicht umbedingt ein Verzeichniss vor dem Dateinamen steht. Dies passiert z.B. wenn die Playlist im gleichen Verzeichnis wie die enthaltenen Dateien gespeichert ist.In dem Fall wäre eine Suche nach "\" auch erfolglos, da ein Dateiname ja kein "\" enthalten darf.
miniversum
Warum die Fehlermeldung kommt kann ich hier bei mir nicht nachvollziehen. Das Problem mit dem PlOut kann ich grade oben korrigiert.
Der untershcied ist das bei bastlas Lösung alle Zeilen die ein "\" enthalten eingelesen werden. Bei meiner werden aber alle Zeilen AUßER denen die am Anfang ein "#" eingelesen.
miniversum
EDIT: Fehler gefunden und oben korrigiert
Der untershcied ist das bei bastlas Lösung alle Zeilen die ein "\" enthalten eingelesen werden. Bei meiner werden aber alle Zeilen AUßER denen die am Anfang ein "#" eingelesen.
miniversum
EDIT: Fehler gefunden und oben korrigiert
Ja es werden nur dateien mit einem # am anfang ausgeschlossen.
Ich habe es bei mir mit einer m3u-Playlist gestestet die Winamp so erstellt:
miniversum
Ich habe es bei mir mit einer m3u-Playlist gestestet die Winamp so erstellt:
#EXTM3U
#EXTINF:317,KMFDM - Looking For Strange
D:\Musik\KMFDM - Looking For Strange.mp3
#EXTINF:327,SITD - Kreuzgang (Bestie Mensch Remix by Painbastard)
D:\Musik\SITD - Kreuzgang (Bestie Mensch remix by painbastard).mp3
#EXTINF:290,Agonoize - Koprolalie
D:\Musik\Agonoize - Koprolalie.mp3
#EXTINF:317,KMFDM - Looking For Strange
D:\Musik\KMFDM - Looking For Strange.mp3
#EXTINF:327,SITD - Kreuzgang (Bestie Mensch Remix by Painbastard)
D:\Musik\SITD - Kreuzgang (Bestie Mensch remix by painbastard).mp3
#EXTINF:290,Agonoize - Koprolalie
D:\Musik\Agonoize - Koprolalie.mp3
miniversum
Hallo The-COMP!
Anstelle von "C:\Dokumente und Einstellungen\Username" kannst Du auch "%userprofile%" verwenden.
Grüße
bastla
Kann ich in dem Code Snippet eine Pfadvariable verwenden?
Da ich den aktuellen Stand Deiner Batchdatei nicht kenne, ganz allgemein etwa so:@echo off & setlocal
set "Target=Y:\Music"
set "PlIn=C:\Dokumente und Einstellungen\Username\Eigene Dateien\Eigene Musik\Whatever\Playlist.xxx"
set "PlOut=%Target%\Playlist.yyy"
for /f "delims=" %%i in ('findstr /v "^#" "%PlIn%"') do if not exist "%Target%\%%~nxi" copy "%%i" "%Target%\" >nul
...
Was muss ich machen damit die Batchdatei auch mit Leerzeichen in der Pfadangabe funktioniert?
Genügend Anführungszeichen setzen (auch bei der Angabe der Playlist-Datei).Grüße
bastla
Moin The-COMP,
da Du die Feinheiten der Konversation in diesem Forum noch nicht kennst (no prob), zitiere ich nochmal bastla:
Merkst Du den feinen Unterton...?
Bitte poste Deinen Code-Stand, denn bei den geposteten Varianten dürfte wegen ">nul" gar keine "..kopiert"-Meldung erscheinen.
Grüße
Biber
da Du die Feinheiten der Konversation in diesem Forum noch nicht kennst (no prob), zitiere ich nochmal bastla:
Da ich den aktuellen Stand Deiner Batchdatei nicht kenne, ganz allgemein etwa so:
Merkst Du den feinen Unterton...?
Bitte poste Deinen Code-Stand, denn bei den geposteten Varianten dürfte wegen ">nul" gar keine "..kopiert"-Meldung erscheinen.
Grüße
Biber
Um auch Dateien mit Umlauten kopieren zu können muss die Codepage auf Deutsch umgeschaltet werden.
Das wird erreicht indem am Anfang der Batch Datei die Zeile
PS: Hab ne ähnliche Batch hier die allerdings das Verzeichnis selbst anlegt indas kopiert wird und noch ein Paar andere Dinge kann. Vielleicht poste ich sie mal noch wenn ich sie grade finde und bedarf besteht.
Das wird erreicht indem am Anfang der Batch Datei die Zeile
chcp 1252 >NUL
eingefügt wird. Allerdings funktioniert die Anzeige auf dem Bildschirm nicht so ganz. Da müßte also immer umgeschatet werden dann wenn man darauf wert legt.PS: Hab ne ähnliche Batch hier die allerdings das Verzeichnis selbst anlegt indas kopiert wird und noch ein Paar andere Dinge kann. Vielleicht poste ich sie mal noch wenn ich sie grade finde und bedarf besteht.
Hallo The-COMP!
Originalplaylist (unter Berücksichtigung des Headers) auslesen und am Zielort neu erstellen - dazu nur für erfolgreich kopierte Titel die entsprechenden beiden Zeilen eintragen (wobei als "Pfad" nur der Dateiname benötigt wird, da sowohl Playlist als auch die zugehörigen Musikdateien im selben Ordner liegen).
Anschließend auf Basis der neuen Playlist die alternative "Playlist.yyy" (ebenfalls am Zielort) erstellen.
Bis miniversum seine "Luxusvariante" postet, als Versuch einer Umsetzung:
Die Batchdatei ist in dieser Fassung für die Verwendung von der Kommandozeile aus gedacht, da die Fehlermeldungen per "echo" ausgegeben werden (wobei diese natürlich auch mit einem Aufruf der Art
in eine Textdatei umgeleitet werden können).
Soll nicht die in der entsprechenden "set"-Zeile festgelegte Default-Playlistendatei verwendet werden, kann der Batch auch so aufgerufen werden:
Zur Erstellung der ".yyy"-Playlist wird im entsprechenden Unterprogramm miniversum's Code verwendet - verändert wurde nur die Quelle (= neu erstellte Playlist im Zielordner).
Getestet ist der Batch nur oberflächlich ...
Grüße
bastla
Wie schaff ich es dass die Anordnung der alten Liste erhalten bleibt und nur die neuen Pfadangaben besitzt.
Dazu wäre die bisherige Strategie zu überdenken und eher so vorzugehen:Originalplaylist (unter Berücksichtigung des Headers) auslesen und am Zielort neu erstellen - dazu nur für erfolgreich kopierte Titel die entsprechenden beiden Zeilen eintragen (wobei als "Pfad" nur der Dateiname benötigt wird, da sowohl Playlist als auch die zugehörigen Musikdateien im selben Ordner liegen).
Anschließend auf Basis der neuen Playlist die alternative "Playlist.yyy" (ebenfalls am Zielort) erstellen.
Bis miniversum seine "Luxusvariante" postet, als Versuch einer Umsetzung:
@echo off & setlocal
set "Target=Y:\Music"
::Default für Playlist
set "PlIn=C:\Dokumente und Einstellungen\Username\Eigene Dateien\Eigene Musik\Whatever\Playlist.xxx"
set "PlOutExt=.yyy"
set "HeaderM3U=#EXTM3U"
::Falls Playlist als Argument übergeben wurde, diese(s) verwenden
if not [%1]== set "PlIn=%~1"
if not exist "%PlIn%" echo Playlist "%PlIn%" nicht gefunden! & goto :eof
::Einzeiligen Header einlesen
set /p Header=<"%PlIn%"
::Kontrolle Playlistformat - kann natürlich auch unterbleiben
if not "%Header%"=="%HeaderM3U%" echo Playlist-Format nicht OK! & goto :eof
::Codepage umstellen (aktuelle CP zwischenspeichern)
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i"
chcp 1252>nul
::Bei Bedarf Zielordner erzeugen
if not exist "%Target%" md "%Target%"
::Pfad für neue Playlist (Dateiname und -typ bleiben gleich) festlegen ...
for %%i in ("%PlIn%") do set "PlNew=%Target%\%%~nxi"
::... und Header in neue Playlist schreiben
echo %Header%>"%PlNew%"
::Ausgangs-Playlist ab Zeile 2 (also nach dem Header) auslesen und verarbeiten
for /f "usebackq skip=1 delims=" %%i in ("%PlIn%") do set "Line=%%i" & call :ProcessLine "%%i"
::Alternative Playlist erzeugen
call :MakePlaylist_yyy
::Codepage wieder auf ursprünglichen Wert setzen
chcp %CP%>nul
::Hauptprogramm Ende
goto :eof
:ProcessLine
::Wenn Zeile nicht mit "#" beginnt, muss es ein Dateipfad sein
if not %Line:~0,1%==# goto :CopyIt
::"#"-Zeile zwischenspeichern (Ausgabe in neue Playlist erst nach erfolgreicher Kopie der Musikdatei)
set "Info=%Line%"
goto :eof
:CopyIt
::Ist die zu kopierende Musikdatei vorhanden?
if not exist %1 echo %1 nicht gefunden! & goto :eof
::Ist die zu kopierende Musikdatei bereits im Zielordner vorhanden?
if exist "%Target%\%~nx1" echo %1 bereits in "%Target%" vorhanden - nicht kopiert! & goto :eof
::Kopie durchführen und, wenn kein Fehler gemeldet wird, weiter zum Schreiben des Playlist-Eintrages
copy %1 "%Target%\%~nx1" >nul 2>nul && goto :CopyOK
echo %1 konnte nicht kopiert werden! & goto :eof
:CopyOK
::Eintrag in neue Playlist; da im Zielverzeichnis "flat" erstellt, als "Pfad" nur Dateiname
(echo %Info%)>>"%PlNew%"
(echo %~nx1)>>"%PlNew%"
goto :eof
:MakePlaylist_yyy
::Pfad und Dateiname (mit Typ %PlOutExt%) der alternativen Playlist festlegen
for %%i in ("%PlNew%") do set "PlOut=%%~dpni%PlOutExt%"
echo ^<MUSICFOLDERS^>>"%PlOut%"
echo ^<MUSICFOLDER DIR="" /^>>>"%PlOut%"
echo ^</MUSICFOLDERS^>>>"%PlOut%"
::Daten aus neuer Playlist verwenden
for /f "delims=" %%i in ('findstr /V "^#" "%PlNew%"') do (
echo ^<ENTRY TITLE="" TYPE="1"^>>>"%PlOut%"
echo ^<LOCATION DIR="%%~pi" FILE="%%~nxi" VOLUME="%%~di" /^>>>"%PlOut%"
echo ^<EXTDATA /^>>>"%PlOut%"
echo ^</ENTRY^>>>"%PlOut%"
)
goto :eof
CopyMusic.cmd > D:\CopyMusicLog.txt
Soll nicht die in der entsprechenden "set"-Zeile festgelegte Default-Playlistendatei verwendet werden, kann der Batch auch so aufgerufen werden:
CopyMusic.cmd "D:\Andere Playlist.m3u"
Zur Erstellung der ".yyy"-Playlist wird im entsprechenden Unterprogramm miniversum's Code verwendet - verändert wurde nur die Quelle (= neu erstellte Playlist im Zielordner).
Getestet ist der Batch nur oberflächlich ...
Grüße
bastla
Ja ich habs jetzt auch endlich gefunden das Ding.
Ich sollte mal Dringend auf meinem Rechner aufräumen.
Das mit ner zusätzlichen Playlist die neu erstellt wird hab ich allerdings nicht. Hir werden die Dateien Kopiert und mit einer Führenden Nummer versehen damit die Reihenfolge erhalten bleibt. Aber vielleicht hilft es trotzdem etwas:
Ich sollte mal Dringend auf meinem Rechner aufräumen.
Das mit ner zusätzlichen Playlist die neu erstellt wird hab ich allerdings nicht. Hir werden die Dateien Kopiert und mit einer Führenden Nummer versehen damit die Reihenfolge erhalten bleibt. Aber vielleicht hilft es trotzdem etwas:
@echo off
set nrlen=3
chcp 1252 >NUL
set "nrvorl="
set i=0
:dazu
set nrvorl=%nrvorl%0
set /a i=%i%+1
if %i% lss %nrlen% goto:dazu
set name="%~1"
if [%name%]==[""] set /p name=Name der Playlist:
for /F "delims=" %%a in ('dir /b /a-D %name%') do (
set "filename=%%~na"
set "playlistpath=%%~dpa"
if ["%~1"]==[""] (set fullname="%%~fa" & set playlisttype=%%~xa) else (set fullname="%~1" & set "playlistpath=%~dp1" & set playlisttype=%~x1)
)
set playlistpath=%playlistpath:~0,-1%
set "pfad=%playlistpath%\%filename%"
set nummer=1
if /i not exist "%pfad%\NUL" md "%pfad%" 2>NUL
echo Dateien aus der Playlist werden kopiert:
echo.
REM aalte zeile: FOR /F "eol=# tokens=1 delims=" %%A in ('type %fullname%') do call:nrkopier "%%A"
echo Playlisttyp: %playlisttype:~1%
if /i "%playlisttype%" equ ".m3u" ((for /f "delims=" %%A in ('findstr /V "^#EXT" %fullname%') do call:nrkopier "%%A") & goto:copyok)
if /i "%playlisttype%" equ ".pls" ((for /f "tokens=2* delims==" %%A in ('findstr "^File" %fullname%') do call:nrkopier "%%A") & goto:copyok)
echo Unbekannter Playlisttyp
:copyok
echo.
chcp 850 >NUL
pause
goto:eof
:nrkopier
set anummer=%nrvorl%%nummer%
call set anummer=%%anummer:~-%nrlen%%%
chcp 850 >NUL
echo %anummer%: "%~n1"
chcp 1252 >NUL
copy "%~1" "%pfad%\%anummer% %~nx1" /Y >NUL||(copy "%playlistpath%\%~1" "%pfad%\%anummer% %~nx1" /Y >NUL||(echo Fehler beim Kopieren && Pause))
set /a nummer=%nummer%+1
goto:eof
Guten Morgen,
hab eine frage krieg des mal wieder net gebacken....
also zu dem Befehl der liest sich die quellenselber raus und ziele aus
for /f "delims=" %%i in ('findstr "\\" Quellpfade.ini') do (
for /f "delims=" %%a in ('findstr "\\" Zielpfade.ini') do (
@echo robocopy "%%i" "%%a"
))
bloss es als ergebgnis passiert sowas:
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s5"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s5"
.
.
.
aber möchte das nur sowas geamcht wird :
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\3" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\4" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\5" "C:\*\sicherung\s5"
Kann man es so mit der möglichkeit machen, falls ja über antworten würde ich mich sehr freuen
Gruß Madej1
hab eine frage krieg des mal wieder net gebacken....
also zu dem Befehl der liest sich die quellenselber raus und ziele aus
for /f "delims=" %%i in ('findstr "\\" Quellpfade.ini') do (
for /f "delims=" %%a in ('findstr "\\" Zielpfade.ini') do (
@echo robocopy "%%i" "%%a"
))
bloss es als ergebgnis passiert sowas:
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s5"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s5"
.
.
.
aber möchte das nur sowas geamcht wird :
robocopy "C:\*\Dateien\1" "C:\*\sicherung\s1"
robocopy "C:\*\Dateien\2" "C:\*\sicherung\s2"
robocopy "C:\*\Dateien\3" "C:\*\sicherung\s3"
robocopy "C:\*\Dateien\4" "C:\*\sicherung\s4"
robocopy "C:\*\Dateien\5" "C:\*\sicherung\s5"
Kann man es so mit der möglichkeit machen, falls ja über antworten würde ich mich sehr freuen
Gruß Madej1
Hallo Madej1!
Auch wenn die Überschrift eine gewisse Verwandtschaft zu Deinem Problem vermuten ließe, wäre dennoch ein eigener Beitrag angebracht.
Auf dem Weg dort hin könntest Du Dir folgendes überlegen (und im neuen Thread ggf begründen): Wenn es offenbar zusammengehörige Quell- und Zielpfade gibt, wozu dann 2 verschiedene .ini-Dateien?
Wenn Du keinen guten Grund für 2 .ini-Dateien hast, schreibe einfach jeweils einen Quell- und einen Zielpfad (durch ";" getrennt) in die einzelnen Zeilen einer neuen "Pfade.ini" und versuch es so:
Grüße
bastla
Auch wenn die Überschrift eine gewisse Verwandtschaft zu Deinem Problem vermuten ließe, wäre dennoch ein eigener Beitrag angebracht.
Auf dem Weg dort hin könntest Du Dir folgendes überlegen (und im neuen Thread ggf begründen): Wenn es offenbar zusammengehörige Quell- und Zielpfade gibt, wozu dann 2 verschiedene .ini-Dateien?
Wenn Du keinen guten Grund für 2 .ini-Dateien hast, schreibe einfach jeweils einen Quell- und einen Zielpfad (durch ";" getrennt) in die einzelnen Zeilen einer neuen "Pfade.ini" und versuch es so:
for /f "tokens=1,2 delims=;" %%i in (Pfade.ini) do @echo robocopy "%%i" "%%j"
Grüße
bastla
Nachfrage @The-COMP,
besteht hier weiterer Klärungs/Verfeinerungsbedarf oder kann ich den Thread guten Gewissens schließen?
Grüße
Biber
besteht hier weiterer Klärungs/Verfeinerungsbedarf oder kann ich den Thread guten Gewissens schließen?
Grüße
Biber