the-comp
Goto Top

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:
#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. face-wink

Schönen Abend noch!
Boris

Content-Key: 77149

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

Printed on: April 26, 2024 at 23:04 o'clock

Member: bastla
bastla Jan 03, 2008 at 17:25:05 (UTC)
Goto Top
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:
@for /f "delims=" %i in ('findstr "\\" Playlist.xxx') do @copy "%i" Y:\Music\ >nul  
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:
@for /f "delims=" %i in ('findstr "\\" Playlist.xxx') do @echo copy "%i" Y:\Music\  
Damit werden die Kopierbefehle nur angezeigt, aber noch nicht ausgeführt.

Grüße
bastla
Member: The-COMP
The-COMP Jan 03, 2008 at 17:36:57 (UTC)
Goto Top
Natürlich!
Du hast mir genauso geholfen. Es funktioniert und ist genau das was ich mir vorerst mal vorgestellt habe.
Wäre es möglich die alte Playlist mit neuen Pfadangaben auf auf Y: zu kopieren und evtl. eine If exist Schleife zu integrieren um nicht unnötig Daten zu überschreiben?

Könntest du mir noch die Phrase: "@for /f "delims=" %i in ('findstr "\\" Playlist.xxx')" kommentieren. Ich möchte ja nicht dumm sterben. face-wink

Wie schwer ist mein 2. Anliegen umzusetzen?

P.S. Herzlichen Dank!
Member: bastla
bastla Jan 03, 2008 at 17:47:07 (UTC)
Goto Top
Hallo The-COMP!

... 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')  
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
Member: miniversum
miniversum Jan 03, 2008 at 17:50:54 (UTC)
Goto Top
Den Zweiten Fall würde ich so lösen:
@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%"
)

miniversum

EDIT: PlOut-Problem Korrigiert
EDIT2: Fehlermeldungsproblem behoben
Member: miniversum
miniversum Jan 03, 2008 at 18:07:56 (UTC)
Goto Top
@bastla
Wäre bei einer solchen Playlist nicht eher ein
for /f "delims=" %i in ('findstr /V "^#" Playlist.xxx')
statt einem
for /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
Member: The-COMP
The-COMP Jan 03, 2008 at 18:24:18 (UTC)
Goto Top
Das mit der If Schleife funktioniert nicht. Meldung: "Die folgende Verwendung des Pfadopeators...." (Meldung taucht nur eine ms auf).

Kann ein Counter integriert werden der die Kopiervorgänge zählt und sie zu einer Log hinzufügt àla "echo %date% - %time%: Es wurden %var% Dateien kopiert. >>Log.log


@miniversum
Dein Verbesserungsvorschlag funktioniert. Erklärst du mir bitte noch was sich da geändert hat.
Wenn ich versuch die Playlist "playlist.xxx" zu konvertieren erhalte ich die Datei "PlOut" mit folgendem Inhalt:

<MUSICFOLDERS>
<MUSICFOLDER DIR="" />  
</MUSICFOLDERS>
Member: miniversum
miniversum Jan 03, 2008 at 18:37:00 (UTC)
Goto Top
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
Member: Biber
Biber Jan 03, 2008 at 18:45:01 (UTC)
Goto Top
Moin The-COMP, bastla und miniversum,

nur kurzer Zwischenruf:
Ersetze: for /f "delims=" %i
Durch: for /f "delims=" %%i

Dann klappts besser.

Grüße
Biber
Member: The-COMP
The-COMP Jan 03, 2008 at 18:53:51 (UTC)
Goto Top
Danke für den Hinweis. Daran hab ich schon gedacht face-wink

@miniversum
Werden bei deiner Lösung nur Zeilen ausgeschlossen die ein "#" am Anfang haben.
Die Playlist kann je nach verwendetem Programm noch einen Header mit versch. Informationen beinhalten, welche auch nicht berücksichtigt werden soll. Verzeih mir wenn ich mich irre.

-
Die Datei wird zwar nun richtig unbenannt der Inhalt bleibt jedoch der selbe. Funktionierts bei dir?

@all
Die Hauptaufgabe wird soweit schon richtig ausgeführt. Die If Schleife funktioniert nur nicht.
Member: miniversum
miniversum Jan 03, 2008 at 19:16:41 (UTC)
Goto Top
Ja es werden nur dateien mit einem # am anfang ausgeschlossen.
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

miniversum
Member: bastla
bastla Jan 03, 2008 at 19:45:57 (UTC)
Goto Top
Hallo The-COMP!

Die If-Abfrage würde in Batch (unter Verwendung der sicher besser geeigneten Filterung lt miniversum's Vorschlag) so aussehen:
for /f "delims=" %%i in ('findstr /v "^#" Playlist.xxx') do if not exist "Y:\Music\%%~nxi" copy "%%i" Y:\Music\ >nul  

Grüße
bastla
Member: The-COMP
The-COMP Jan 04, 2008 at 02:05:46 (UTC)
Goto Top
Danke für eure Bemühungen!
@ bastla:
Kann ich in dem Code Snippet eine Pfadvariable verwenden?
Das ist dann interessant, wenn ich via Eingabeaufforderung einen Laufwerksbuchstaben zuweise.
Was muss ich machen damit die Batchdatei auch mit Leerzeichen in der Pfadangabe funktioniert?
Bei "C:\Dokumente und Einstellungen" streikt sie...
Member: bastla
bastla Jan 04, 2008 at 09:33:13 (UTC)
Goto Top
Hallo The-COMP!

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  

...
Anstelle von "C:\Dokumente und Einstellungen\Username" kannst Du auch "%userprofile%" verwenden.

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
Member: The-COMP
The-COMP Jan 04, 2008 at 15:45:50 (UTC)
Goto Top
Danke hat mir schon weitergeholfen.
Wie schaff ich es, dass anstatt "1 Datei(en) kopiert.", "E:\Liedabc.mp3" kopiert." steht.
Bzw. was noch wichtiger ist und auch mehr Sinn macht: "Das System kann "E:\Liedabc.mp3" nicht finden".

Eine Playlist ist nicht immer so aktuell wie die Ordnerstruktur...

*Denke ich weiss schon wie.. einfach via Echo Befehl. Wie kann ich "UND" Verknüpfungen bzw. Bedingungen machen?

Übrigens.. Ihr seit super! Danke für eure (kostenlose) persönliche u. kompentente Hilfe!
Member: Biber
Biber Jan 04, 2008 at 15:54:49 (UTC)
Goto Top
Moin The-COMP,

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
Member: The-COMP
The-COMP Jan 04, 2008 at 16:04:01 (UTC)
Goto Top
Hey Biber,
sorry das hab ich glatt überlesen. Ich bin grad ein wenig im Stress und nicht an meinem PC! face-wink

Wenn ich ">nul" wegmache und den echo-Befehl funktioniert die Sache schon.
Mein Stand ist nicht viel weiter als der im Forum, da ich mich erst mal nur um das exportieren der Tracks gekümmert hab. Das andere ist momentan nicht wichtig.

Mir fiehl mit Hilfe des echo-Befehls auf dass Dateien mit Umlauten (ö.ä,..) nicht kopiert wurden.
Ist jetzt erstmal nicht weiter schlimm, aber wenn ihr eine Lösung kennt dann könnt ihr sie ja posten.

Wie schaff ich es dass die Anordnung der alten Liste erhalten bleibt und nur die neuen Pfadangaben besitzt. (Erst wollte ich einfach mit den kopierten Tracks ne neue Liste erzeugen, aber da dachte ich nicht an die Reihenfolge)
Member: miniversum
miniversum Jan 05, 2008 at 09:36:42 (UTC)
Goto Top
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
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.
Member: bastla
bastla Jan 05, 2008 at 14:36:53 (UTC)
Goto Top
Hallo The-COMP!

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" face-wink 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
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
CopyMusic.cmd > D:\CopyMusicLog.txt
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:
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
Member: miniversum
miniversum Jan 05, 2008 at 15:40:30 (UTC)
Goto Top
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:
@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
Member: Madej1
Madej1 Jan 09, 2008 at 07:13:01 (UTC)
Goto Top
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
Member: bastla
bastla Jan 09, 2008 at 12:55:39 (UTC)
Goto Top
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:
for /f "tokens=1,2 delims=;" %%i in (Pfade.ini) do @echo robocopy "%%i" "%%j"  

Grüße
bastla
Member: Madej1
Madej1 Jan 09, 2008 at 13:57:26 (UTC)
Goto Top
Hey danke so klappt es auch ich denk mal das es so wie du es vorgeschlagen hast auch reicht

Vielen dank

wollt keine neuen Beitrag machen, hab dacht das problem löst sich schnell, was es auch dank dir hat

grüße

Madej1
Member: Biber
Biber Jan 13, 2008 at 18:17:10 (UTC)
Goto Top
Nachfrage @The-COMP,

besteht hier weiterer Klärungs/Verfeinerungsbedarf oder kann ich den Thread guten Gewissens schließen?

Grüße
Biber
Member: The-COMP
The-COMP Jan 15, 2008 at 18:05:22 (UTC)
Goto Top
Der Thread kann guten Gewissens geschlossen werden.
Danke an alle Beteiligten!