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
GELÖST

Sprungmarke oder Else-Zweig in FOR-Block

Frage Entwicklung Batch & Shell

Mitglied: Haegar75

Haegar75 (Level 1) - Jetzt verbinden

20.09.2010 um 20:17 Uhr, 3627 Aufrufe, 3 Kommentare

Hallo Leute,
ich stehe mal wieder bißchen quer im Stall und bräuche eure Hilfe..
Für einen File-Transfer möchte ich mir ein Control-File erstellen und habe das Problem, dass ich in diesem For-Anweisungsblock nur einfache IF-Abfragen ohne Else-Zweig benutzen kann, auch Sprungmarken lassen die Ausführung in den Wald laufen. Selbst Erweiterungen der If-Anweisung mit && oder || klappen nicht. Gibts da nen Trick?
Hier ein Auszug aus meinem Konstrukt..
01.
.... 
02.
for /f "delims=. tokens=1,2,3,4" %%i in (oml.txt) do ( 
03.
set AAAA=%%i 
04.
set VVVV=%%j 
05.
set SS=%%k 
06.
set LT=%%l 
07.
 
08.
set "OMLPath=foml\!AAAA!\!VVVV!\!SS!" 
09.
set "OMLPath_L=foml/!AAAA!/!VVVV!/!SS!" 
10.
set "OMLFile=!AAAA!.!VVVV!.!SS!.!LT!.oml" 
11.
if exist %S03%\!OMLPath!\!OMLFile! echo cd /lan/!OMLPath_L!>>files.txt 
12.
if exist %S03%\!OMLPath!\!OMLFile! echo send %S03%!OMLPath!\*.bin>>files.txt 
13.
... 
14.
)
Vielen Dank im voraus!
Gruß Haegar
Mitglied: LotPings
20.09.2010 um 23:11 Uhr
Hallo Haegar,

ich weiß ja nicht, ob die doppelten Zwischenvariablen aus anderen Gründen nötig sind,
aber ich würde sie in dem Fragment einfach weglassen.

01.
.... 
02.
for /f "tokens=1-4 delims=." %%i in (oml.txt) do Set "OML=%%i\%%j\%%k"&Call :Sub "%%l.oml" 
03.
... 
04.
Goto :eof 
05.
:Sub 
06.
if exist "%S03%\foml\%OML%\%OML:\=.%.%~1" ( 
07.
echo cd /lan/foml/%OML:\=/% 
08.
echo send %S03%\foml\%OML%\*.bin 
09.
)>>files.txt
Die unterschiedlichen Formen (mit . / \ ) kann man über Variablen-Substitution erzeugen - obiger ungetesteter Code sollte funktionieren.

Gruß
LotPings
Bitte warten ..
Mitglied: mathe172
21.09.2010 um 18:22 Uhr
Hallo haegar!

Ich weiss nicht ob das von Lotpings schon reicht, aber:
Wenn "else" und "goto" nicht funktionieren, versuchs mit:
01.
if exist .... echo .... 
02.
if not exist ..... echo .... 
03.
REM Also einfach prüfen ob Datei vorhanden und dann ob Datei nicht vorhanden
Mathe172
Bitte warten ..
Mitglied: Haegar75
22.09.2010 um 20:31 Uhr
Vielen Dank euch beiden! Der Tipp den For-Anweisungsblock in ein Unterprogramm zu packen war schon der Schlüssel zum Erfolg!
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Cluster
Brauche hilfe beim einrichten von Galera Cluster for MySQL

Frage von akadawa zum Thema Cluster ...

Batch & Shell
Batch kehrt zur Sprungmarke zurück, obwohl es pingen soll? (2)

Frage von Brotkasten zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (17)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...