Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Problem beim Verarbeiten mehrerer Pfade innerhalb einer for-Schleife

Frage Entwicklung Batch & Shell

Mitglied: 43547

43547 (Level 1)

18.02.2007, aktualisiert 26.02.2007, 3138 Aufrufe, 6 Kommentare

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
Mitglied: Dani
18.02.2007 um 20:42 Uhr
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
01.
@echo off 
02.
IF EXIST "C:\LW_C.drv" ( 
03.
    FOR /f "delims== tokens=2" %%i in (C:\LW_C.drv) do ( 
04.
        COPY C:\HALLO\xyz.key %%~i\System\Keys\xyz.key 
05.
        ..... 
06.
        ..... 
07.
08.
) else ( 
09.
BACKUP2 
10.
)
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
Bitte warten ..
Mitglied: 43547
18.02.2007 um 20:45 Uhr
Sorry, ich hab vergessen das innerhalb von :CREATE_BACKUP1_2 mehrere COPY Befehle folgen, das hatte ich der einfachheit halber auf einen befehl reduziert
Bitte warten ..
Mitglied: Dani
18.02.2007 um 20:51 Uhr
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
Bitte warten ..
Mitglied: Chipy
18.02.2007 um 21:11 Uhr
hi,


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

sollte so funktionieren :

01.
@Echo off 
02.
 
03.
:CREATE_BACKUP1 
04.
IF EXIST test.drv ( 
05.
 
06.
FOR /f "delims== tokens=1-2" %%i in (test.drv) do Set LW_TMP=%%~i && SET PATH_TMP=%%~j && CALL :CREATE_BACKUP1_2 
07.
 
08.
)Else ( 
09.
 
10.
Echo Error 
11.
 
12.
13.
 
14.
 
15.
:CREATE_BACKUP1_2 
16.
 
17.
COPY C:\HALLO\xyz.key %PATH_TMP%\System\Keys\xyz.key
Bitte warten ..
Mitglied: Biber
22.02.2007 um 09:58 Uhr
Moin IT-KMS-Nitschke,

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

Gruss
Biber
Bitte warten ..
Mitglied: Biber
26.02.2007 um 21:46 Uhr
Hmm.... ich hasse Selbstgespräche...

Thread geschlossen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
For Schleife in einer .sh Datei (4)

Frage von CrystalFlake zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (59)

Frage von pjrtvly zum Thema Internet ...

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...

Windows Server
Benutzer sperrt sich immer wieder im Active Directory Contoller (18)

Frage von Kirdy1301 zum Thema Windows Server ...