Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3644 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 ..
Ähnliche Inhalte
Backup
QNAP NASC77A61 mit Fehlerhaften Blöcken (11)

Frage von Fitzel69 zum Thema Backup ...

Batch & Shell
PowerShell mehrere Try-Catch Blöcke? (1)

Frage von Marabunta zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Batch & Shell
gelöst Get-Aduser - If then else??? (2)

Frage von MuHMuH zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Taschenrechner in IOS kaputt!

(5)

Information von Lochkartenstanzer zum Thema Humor (lol) ...

Sicherheit

Kanadischer Geheimdienst veröffentlicht erstmals Sicherheitssoftware

(3)

Information von BassFishFox zum Thema Sicherheit ...

Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows 7
Abbruch bei Brennvorgang (19)

Frage von Simulant zum Thema Windows 7 ...

Router & Routing
Externe IP von innen erreichbar machen (16)

Frage von Windows10Gegner zum Thema Router & Routing ...

Firewall
WIndows 7 RDP Massen Angriff (14)

Frage von Motte990 zum Thema Firewall ...