43547
Goto Top

Problem beim Verarbeiten mehrerer Pfade innerhalb einer for-Schleife

Hier Nitschke, wieder Mal ein (hoffentlich) kleines Problem. Ich habe Bastler's Lösung in mein vorhandenen Batch-Script eingebaut. Dieser sieht wie folgt aus:

:CREATE_BACKUP1
IF EXIST %LW_WINDIR%%LW_AAC_SYS%LW_C.drv FOR /f "delims== tokens=1-2" %%i in (%LW_WINDIR%%LW_AAC_SYS%LW_C.drv) do CALL :CREATE_BACKUP1_2 "%%i" "%%j"
GOTO CREATE_BACKUP2
:CREATE_BACKUP1_2
SET LW_TMP=%~1
SET PATH_TMP=%~2

COPY C:\HALLO\xyz.key %PATH_TMP%\System\Keys\xyz.key


Inhalt der LW_C.drv - Datei:

LW101=C:\Test-Ordner\Hallo\

LW102=D:\NocheinOrdner\Hier\

LW103=E:\NixDrin\

usw. usf.


Also folgendes passiert bzw. soll passieren. Je nachdem wieviele Pfade innerhalb der LW_C.drv - Datei gefunden werden, sollen diese eingelesen und weiter verarbeitet (z.B. COPY) werden. Das heißt bei jedem Durchlauf soll per COPY die xyz.key nach %PATH_TMP% kopiert werden. %PATH_TMP% stellt jeweils einen Pfade aus der LW_C.drv - Datei dar. Das Problem ist, dass der COPY Befehl nur beim letzten Pfad aus der LW_C.drv zur Ausführung kommt. Wenn also in der Datei 10 verschieden Pfade zu finden sind, wird der COPY Befehl nur auf den letzten Pfad angewendet, ABER bei jedem Pfad aus der LW_C.drv sollte der COPY Befehl ausgeführt werden.
Wie kann man das Problem lösen?

MfG
Marcel

Content-Key: 52016

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

Printed on: April 25, 2024 at 00:04 o'clock

Member: Dani
Dani Feb 18, 2007 at 19:42:47 (UTC)
Goto Top
G' Abend,
also ich gehe einfach mal davon aus, dass die PFade in der Datei untereinander stehen. Somit habe ich folgendes konstruiert:

Version 0.2
@echo off
IF EXIST "C:\LW_C.drv" (  
    FOR /f "delims== tokens=2" %%i in (C:\LW_C.drv) do (  
        COPY C:\HALLO\xyz.key %%~i\System\Keys\xyz.key
        .....
        .....
    )
) else (
BACKUP2
)
Das Ganze ist gerade nur Theorie! Ich hoffe, ich interpretiere deine Anforderungen richtig.
ICh habe das GOTO BACKUP2 durch das else ersetzt. Da ich nicht weiß, wie die ganze Datei aussieht.


Grüße
Dani
Mitglied: 43547
43547 Feb 18, 2007 at 19:45:50 (UTC)
Goto Top
Sorry, ich hab vergessen das innerhalb von :CREATE_BACKUP1_2 mehrere COPY Befehle folgen, das hatte ich der einfachheit halber auf einen befehl reduziert
Member: Dani
Dani Feb 18, 2007 at 19:51:53 (UTC)
Goto Top
Ist ja kein Problem...ich mein Code oben geändert. Bei .... kannst du so viele Befehle untereinander schreiben, wie du möchtest.


Grüße
Dani
Member: Chipy
Chipy Feb 18, 2007 at 20:11:33 (UTC)
Goto Top
hi,


Wie Dani auch schon machte habe ich das Goto Error ersetzte gegen eine Else *g

sollte so funktionieren :

@Echo off

:CREATE_BACKUP1
IF EXIST test.drv (

FOR /f "delims== tokens=1-2" %%i in (test.drv) do Set LW_TMP=%%~i && SET PATH_TMP=%%~j && CALL :CREATE_BACKUP1_2  

)Else (

Echo Error

)


:CREATE_BACKUP1_2

COPY C:\HALLO\xyz.key %PATH_TMP%\System\Keys\xyz.key
Member: Biber
Biber Feb 22, 2007 at 08:58:08 (UTC)
Goto Top
Moin IT-KMS-Nitschke,

Nachfrage: Wie ist denn so denn der gefühlte Status dieses Threads?
Beantwortet? Offen? Doch nicht so wichtig?

Gruss
Biber
Member: Biber
Biber Feb 26, 2007 at 20:46:00 (UTC)
Goto Top
Hmm.... ich hasse Selbstgespräche...

Thread geschlossen.