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, 3639 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 ...

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 ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

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

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (30)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Microsoft Office
Office Druck fehler (14)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...