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

Sprungmarke innerhalb einer If Anweisung ?

Frage Entwicklung Batch & Shell

Mitglied: malcomxcia

malcomxcia (Level 1) - Jetzt verbinden

17.07.2013, aktualisiert 17:24 Uhr, 1442 Aufrufe, 8 Kommentare

Tach'en erst mal ! ! !

Wie der Threadtitel schon sagt. Ist es überhaupt möglich innerhalb einer IF Anweisung mit Sprunkmarken zu arbeiten ?

Gruß und Danke schon mal im voraus
Malcom
Mitglied: Biber
17.07.2013, aktualisiert um 20:29 Uhr
Moin malcolmxcia,

du kannst innerhalb einer IF-Anweisung sowohl mit Call:sprungmarke wie auch mit goto:sprungmarke arbeiten.

Ersteres, also ein Call-Aufruf mit Rücksprung kann begrenzt sinnvoll sein.
Ein Verlassen einer IF-Anweisung mit goto:malEbenSpontanWoandershin ist unentschuldbar, aber möglich.

Grüße
Biber
Bitte warten ..
Mitglied: malcomxcia
17.07.2013 um 20:03 Uhr
Erst mal vielen Dank für deine antwort ;)

Also ich habs jetzt einfach nur mal mit der If probiert ohne irgendwelchen Code, und sobald eine Sprungmarke IN DER IF Anweisung vorkommt, gibt er mir einen Syntaxfehler aus.

Schein somit nicht zu klappen.

Trotzdem nochmal Danke
Malcom
Bitte warten ..
Mitglied: Pjordorf
17.07.2013, aktualisiert um 23:05 Uhr
Hallo,

Zitat von malcomxcia:
gibt er mir einen Syntaxfehler aus.
Erzählst du uns welchen oder müssen wir hier für dich Lotto Spielen? Und, was und wie hast du denn in deiner IF das ganze umgesetzt? Wenn ich es in meiner Batchdatei umsetze geht es schon Aber mein OS und meine Batch müssen ja nicht aus den gleichen Baum geschnitzt sein wie das was du verwendest

Gruß,
Peter

[Edit]
hatte es natürlich andersrum verstanden und daher durchgestrichen.
[/Edit]
Bitte warten ..
Mitglied: Biber
17.07.2013 um 20:44 Uhr
Moin malcomxcia,

okay, so wie du es beschreibst, willst du ja nich innerhalb der IF-Anweisung ein goto/call einstreuen, sondern umgekehrt in eine IF-Anweisung reinspringen.

Hatte ich im ersten Anlauf nicht verstanden.

Also -dein Ansinnen geht auch, allerdings nicht unbedingt hybsch.
Denn du springst dann ja in eine CMD-Zeile rein, die mit einer Klammer-Zu endet - es wird also nur dann kein Syntaxfehler hochpoppen, wenn du es schaffst VOR dem goto :sprungmarke eine Klammer-Auf unterzubringen.

Aber - wenn es nicht gerade um eine Wette oder um eine lustige Einlage beim Sommerfest geht, würde ich mir so einen Programmierstil verkneifen.

Auch wenn es nur ein wehrloser Batch ist.

Grüße
Biber
Bitte warten ..
Mitglied: Endoro
17.07.2013 um 21:01 Uhr
Hallo,

wenn du so was vor hast:
01.
@ECHO OFF &SETLOCAL 
02.
GOTO :LABEL1 
03.
IF 1==1 ( 
04.
	:LABEL1 
05.
	ECHO foo 
06.
)
dann geht es wohl, bringt aber den ganzen cmd in eine Art undefinierte (=instabile) Lage.
Ich würde unbedingt davon abraten.

lg
Bitte warten ..
Mitglied: malcomxcia
17.07.2013 um 21:21 Uhr
Öhm sorry aber bin nicht so der DOS Freak :D

Wie kann man sich den einen Syntaxfehler genau ausgeben lassen. Bei mir erscheint immer nur Syntaxfehler und das Fenster wird sofort geschlossen ? ? ?
Also dann hier mal mein Beispiel ;)

01.
if defined fullbackup ( 
02.
 
03.
 
04.
echo ---------------------------------------------------------------->>%cd%\log\log_!aktschritt!_backup.log 
05.
echo --------------- ERGEBNIS IHRER DATENSICHERUNG ------------------>> %cd%\log\log_!aktschritt!_backup.log 
06.
echo ---------------------------------------------------------------->>%cd%\log\log_!aktschritt!_backup.log 
07.
 
08.
if defined difffailed ( 
09.
echo. 
10.
echo ####################  HASH FEHLT UND WIRD NEU ERSTELLT  ######################## 
11.
echo. 
12.
SNAPSHOT %quelle%:   %ziel%!hash!_$computername_$disk.sna -L40000 >>%cd%\log\log_!aktschritt!_backup.log 
13.
 
14.
set errorcode=!errorlevel! 
15.
echo !errorcode! >> %cd%\log\log_!hash!_backup.log 
16.
set "mailing=TRUE" 
17.
if !errorcode! GEQ 1 goto fehlermail 
18.
if !copyusb!==1 (goto usbcopy) else (goto erfolgsmail) 
19.
 
20.
21.
echo. 
22.
echo #####################  STARTE FULLBACKUP  ########################## 
23.
echo. 
24.
SNAPSHOT %quelle%:   %ziel%!aktschritt!_$computername_$disk.sna -L40000 >>%cd%\log\log_!aktschritt!_backup.log 
25.
set errorcode=!errorlevel! 
26.
echo !errorcode! >> %cd%\log\log_!aktschritt!_backup.log 
27.
set "mailing=TRUE" 
28.
if !errorcode! GEQ 1 goto fehlermail 
29.
if !copyusb!==1 (goto usbcopy) else (goto erfolgsmail) 
30.
 
31.
 
32.
:usbcopy 
33.
 
34.
)
Und sobald ich innerhalb dieser IF Anweisung das :usbcopy einfüge, gibt es mir den syntaxfehler aus !

Gruß
Malcom
Bitte warten ..
Mitglied: bastla
17.07.2013, aktualisiert um 22:25 Uhr
Hallo malcolmxcia!

  • Was soll denn passieren, wenn %fullbackup% leer ("not defined") ist? Falls eh nix, könntest Du ja die Abfrage umkehren und Dir eine Klammerebene "sparen".
  • Warum soll ":usbcopy" innerhalb des "If defined fullbackup"-Blocks platziert werden - könnte doch per "call" aufgerufen werden und unterhalb des Batch-"Hauptprogramms" stehen?
BTW: Aus
echo ---------------------------------------------------------------->>%cd%\log\log_!aktschritt!_backup.log
und ähnlichen Ausgabezeilen würde ich (kürzer und besser lesbar)
>>log\log_!aktschritt!_backup.log echo ----------------------------------------------------------------
machen (da ja %cd% ohnehin der aktuelle Ordner ist, brauchst Du ihn im Pfad nicht mit anzugeben) ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
17.07.2013 um 23:23 Uhr
Zitat von malcomxcia:
Wie kann man sich den einen Syntaxfehler genau ausgeben lassen. Bei mir erscheint immer nur Syntaxfehler und das Fenster wird
sofort geschlossen ? ? ?

Wenn der Sprung Label die letzte Anweisung vor der schliessenden Klammer ist, gibts einen syntax error.
Bei mir steht noch das echo dahinter

lg
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...