Pfadanlage in Batch unter WinXP
Hallo Forum,
ich habe hier ein Programm, das Dateien in einen Ordner kopiert, dessen erste 4 Zeichen den ersten 4 Zeichen des Dateinamens entsprechen. Ich will das Programm erweitern, und zwar soll es im Zielverzeichnis einen Pfad analog oben anlegen, in den dann das File kopiert wird. Aber nur, wenn es den Pfad noch nicht gibt. Ansonsten sollen die Files wie bisher in die bestehenden Pfade kopiert werden, also in die, für die ein Match existiert zwischen Datei- und Padnamen.
Beispiel (siehe dazu auch Batchprogramm unter WinXP):
Wenn zusätzlich zu o.g. Beispiel eine Datei 3000_a.png existiert, im Zielverzeichnis aber kein Pfad, der mit 3000 beginnt, dann soll der Pfad d:\test\3000 angelegt werden und anschließend das File 3000_a.png dort hinein kopiert werden.
Wie und wo muss ich das in das Coding einsetzen?
Vielen Dank.
Hier mein aktuelles Coding:
ich habe hier ein Programm, das Dateien in einen Ordner kopiert, dessen erste 4 Zeichen den ersten 4 Zeichen des Dateinamens entsprechen. Ich will das Programm erweitern, und zwar soll es im Zielverzeichnis einen Pfad analog oben anlegen, in den dann das File kopiert wird. Aber nur, wenn es den Pfad noch nicht gibt. Ansonsten sollen die Files wie bisher in die bestehenden Pfade kopiert werden, also in die, für die ein Match existiert zwischen Datei- und Padnamen.
Beispiel (siehe dazu auch Batchprogramm unter WinXP):
Wenn zusätzlich zu o.g. Beispiel eine Datei 3000_a.png existiert, im Zielverzeichnis aber kein Pfad, der mit 3000 beginnt, dann soll der Pfad d:\test\3000 angelegt werden und anschließend das File 3000_a.png dort hinein kopiert werden.
Wie und wo muss ich das in das Coding einsetzen?
Vielen Dank.
Hier mein aktuelles Coding:
echo off & setlocal
set "Quelle=c:\Temp\Test"
set "Ziel=d:\Test"
set "Prot=%Quelle%\Prot_%date:~-4%-%date:~-7,2%-%date:~-10,2%_%time:~,2%%time:~3,2%%time:~6,2%.txt"
set "Prot=%Prot: =0%"
del "%Prot%" 2>nul
pushd "%Quelle%"
for /f "tokens=1* delims=_" %%i in ('dir /b /a-d e*_*.* 2^>nul') do (
set "Done="
for /d %%a in ("%Ziel%\%%i*") do if not defined Done (
copy "%%i_%%j" "%%a" >nul
set "Done=True"
)
)
popd
set "Liste=%Quelle%\Liste.txt"
copy nul "%Liste%"
for /f "tokens=1* delims=_" %%i in ('dir /b /a-d e*_*.* 2^>nul') do findstr "%%i" "%Liste%" || (
>>"%Liste%" echo %%i
for /d %%a in ("%Ziel%\%%i*") do (
echo %%~fa
dir /b /a-d "%%a" 2>nul
echo\
)
)>>"%Prot%"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 216302
Url: https://administrator.de/forum/pfadanlage-in-batch-unter-winxp-216302.html
Ausgedruckt am: 09.04.2025 um 11:04 Uhr
6 Kommentare
Neuester Kommentar