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, 3618 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
Ähnliche Inhalte
Windows 10
Windows 10: Version 1607 jetzt im Current Branch for Business

Link von Penny.Cilin zum Thema Windows 10 ...

Erkennung und -Abwehr
Hackers are holding San Francisco s light-rail system for ransom

Link von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Windows 7
gelöst Chrome for Work Konfiguration (5)

Frage von xbast1x zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...