mapl99sb
Goto Top

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:

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%"  

Content-Key: 216302

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

Printed on: April 24, 2024 at 21:04 o'clock

Member: Endoro
Endoro Sep 06, 2013 at 10:28:33 (UTC)
Goto Top
Hi,
meinst du so was:
PUSHD "%Quelle%"   
for /f "tokens=1* delims=_" %%i in ('dir /b /a-d e*_*.* 2^>nul') do (  
	MD "%ziel%\%%~i" 2>NUL  
	COPY "%%~i_%%~j" "%ziel%\%%~i\"  
)
POPD
lg.
Member: mapl99sb
mapl99sb Sep 06, 2013 at 11:17:01 (UTC)
Goto Top
Hi Endoro,
ja, super.

Klappt allerdings nur, wenn ich von z.B. c:\ auf d:\ kopiere.

Ich habe aber als Zielverzeichnis einen anderen Rechner, den ich über das Netzwerk eingebunden habe, im Explorer unter "Netzwerkumgebung" finde und nur über seine IP-Adresse ansprechen kann.

In diesem Falle klappt das Kopieren nicht.

Hast du eine Ahnung, woran das liegen könnte? Über den Win Explorer kann ich ganz normal Dateien dort hin kopieren, wie auf einen anderen Pfad meines Rechners.

VG MAPL
Member: Endoro
Endoro Sep 06, 2013 at 11:33:29 (UTC)
Goto Top
Hi,
du brauchst einen Laufwerksbuchstaben für die Netzressource, das geht zB. so:
net use Z: \\Server\Ressource\Ordner
lg.
Member: mapl99sb
mapl99sb Sep 06, 2013 at 12:46:34 (UTC)
Goto Top
Klappt nicht, ist ein WEBADV-Ordner.
Zuweisung eines Netzwerkbuchstabens geht wohl nur unter Win > XP
Trotzdem danke für die Hilfe.
VG Mapl
Member: mapl99sb
mapl99sb Sep 06, 2013 at 13:59:41 (UTC)
Goto Top
Klappt doch.
Musst unter XP aber ein Hilfsprogramm (z.B. Novell Net Drive) benutzen.
VG MAPL
Member: pieh-ejdsch
pieh-ejdsch Sep 06, 2013 at 14:44:50 (UTC)
Goto Top
moin Endoro,

pushD erstellt Dir auch temporär die fehlende Netzwerkverbindung bevor ins Verzeichnis gewechselt wird, mit aktiven Befehlserweiterungen.

Gruß Phil