Top-Themen

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

Frage Entwicklung Batch & Shell

GELÖST

Batch-Prog führt echo 4x aus

Mitglied: deb10er0

deb10er0 (Level 1) - Jetzt verbinden

15.04.2009, aktualisiert 15:50 Uhr, 3403 Aufrufe, 3 Kommentare

Hallo, erstmal!

Könnt Ihr euch mal meinen Quellcode mal anschauen. Liegt wahrscheinlich an den For-Schleifen. Mein echo-Befehl wird immer 4x ausgeführt, finde dazu aber keine Lösung. Könnt Ihr mir bitte helfen?

01.
echo off 
02.
rem set profil=%1 
03.
set profil=frank 
04.
set pfad_lokal=D:\%profil%\lokal.dat 
05.
set pfad_server=D:\%profil%\server.dat  
06.
 
07.
for /f "delims=" %%i in ('dir %pfad_lokal% /s /b /a-d') do call :splitDateLokal %%~ti 
08.
:splitDateLokal 
09.
for  /f "tokens=1-5 delims=.:," %%a in ("%1.%2") do (  
10.
               set TT_L=%%a 
11.
               Set MM_L=%%b 
12.
               Set JJ_L=%%c 
13.
               Set hh_L=%%d 
14.
               Set mi_L=%%e 
15.
 
16.
17.
 
18.
for /f "delims=" %%i in ('dir %pfad_server% /s /b /a-d') do call :splitDateServer %%~ti 
19.
:splitDateServer 
20.
for  /f "tokens=1-5 delims=.:," %%a in ("%1.%2") do (  
21.
               set TT_S=%%a 
22.
               Set MM_S=%%b 
23.
               Set JJ_S=%%c 
24.
               Set hh_S=%%d 
25.
               Set mi_S=%%e 
26.
27.
 
28.
set zeitlokal=%TT_L%%MM_L%%JJ_L%%hh_L%%mi_L% 
29.
rem set zeitserver=%TT_S%%MM_S%%JJ_S%%hh_S%%mi_S% 
30.
echo %zeitlokal% 
31.
rem echo %zeitserver%
Mitglied: bastla
15.04.2009 um 16:58 Uhr
Hallo deb10er0 und willkommen im Forum!

Da Du Unterprogramme aufrufst, musst Du auch dafür sorgen, dass diese, aber auch das Hauptprogramm, ordnungsgemäß (mit einem goto :eof) abgeschlossen werden:
01.
echo off & setlocal 
02.
rem set profil=%1 
03.
set profil=frank 
04.
set pfad_lokal=D:\%profil%\lokal.dat 
05.
set pfad_server=D:\%profil%\server.dat  
06.
 
07.
for /f "delims=" %%i in ('dir %pfad_lokal% /s /b /a-d') do call :splitDateLokal %%~ti 
08.
for /f "delims=" %%i in ('dir %pfad_server% /s /b /a-d') do call :splitDateServer %%~ti 
09.
 
10.
set zeitlokal=%TT_L%%MM_L%%JJ_L%%hh_L%%mi_L% 
11.
rem set zeitserver=%TT_S%%MM_S%%JJ_S%%hh_S%%mi_S% 
12.
echo %zeitlokal% 
13.
rem echo %zeitserver% 
14.
::Ende Hauptprogramm 
15.
goto :eof 
16.
 
17.
:splitDateLokal 
18.
for  /f "tokens=1-5 delims=.:," %%a in ("%1.%2") do (  
19.
               set TT_L=%%a 
20.
               Set MM_L=%%b 
21.
               Set JJ_L=%%c 
22.
               Set hh_L=%%d 
23.
               Set mi_L=%%e 
24.
 
25.
26.
goto :eof 
27.
 
28.
:splitDateServer 
29.
for  /f "tokens=1-5 delims=.:," %%a in ("%1.%2") do (  
30.
               set TT_S=%%a 
31.
               Set MM_S=%%b 
32.
               Set JJ_S=%%c 
33.
               Set hh_S=%%d 
34.
               Set mi_S=%%e 
35.
36.
goto :eof
Das letzte "goto :eof" ist zwar entbehrlich (da dies nach der letzten Batchzeile automatisch ausgeführt wird), aber es schadet nicht, und wenn Du noch weitere Unterprogramme hinzufügen solltest, benötigst Du es auf jeden Fall ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.04.2009 um 17:04 Uhr
Moin deb10er0,

willkommen in Forum.
Ich hab es zufällig gerade vorhin hier in einem anderen Beitrag gelesen:

  • mit "call :whatever" aufgerufene Blöcke werde explizit beendet mit der Anweisung "goto :eof" in ihrer letzten Zeile
  • ebenso muss nach einer Anweisung, auf die eine zeile mit Sprungmarke folgt
01.
....{Beispiel FALSCH} 
02.
for /f "delims=" %%i in ('dir %pfad_lokal% /s /b /a-d') do call :splitDateLokal %%~ti 
03.
:splitDateLokal  
04.
...
.... eine Sprung/goto :eof-Anweisung VOR die folgende Sprungmarke.
Sonst werden diese zeilen einfach auch noch ausgeführt
(eine Zeile nach der anderen, bis das Ende des Batches erreicht ist)
01.
....{Beispiel WENIGER FALSCH} 
02.
for /f "delims=" %%i in ('dir %pfad_lokal% /s /b /a-d') do call :splitDateLokal %%~ti 
03.
: goto :Eof 
04.
 
05.
REM ~~~~ hier ist der Batch logisch am Ende; 
06.
REM ~~~~ es folgen nur noch Unter-Routinen 
07.
:splitDateLokal  
08.
...
Grüße
Biber
[Edit] Hätte mich auch gewundert, wenn ich vor bastla zu Ende getippt hätte... [/Edit]
Bitte warten ..
Mitglied: deb10er0
16.04.2009 um 08:03 Uhr
Hey, super!!
Danke hat funktioniert!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Echo in Batch schreibt vorab eine 1
gelöst Frage von chappy72Batch & Shell1 Kommentar

Hallo zusammen ich verstehe was kleines nicht In einem Batch schreibe ich: Rufe ich den Batch unter Windows 10 ...

Batch & Shell
Batch Datei: ECHO ist ausgeschaltet (OFF)
gelöst Frage von twicefaceBatch & Shell3 Kommentare

Guten Abend, ich habe mir aus diversen Beiträgen hier ein nützliches Script "zusammengeklaut". Es funktioniert wunderbar, nur bekomme ich ...

Batch & Shell
Batch (Win7): Kombinierte Ausgabe mit echo?
gelöst Frage von Ben.Blake.79Batch & Shell1 Kommentar

Hallo, ist es eigentlich möglich, mit echo einen Text gleichzeitig auf dem Bildschirm und in eine Datei auszugeben? Oder ...

Batch & Shell
Batch: eine Zahl eingeben und als echo ausgeben
gelöst Frage von Vit1985Batch & Shell2 Kommentare

Hallo, ich möchte mithilfe von einem Batch im DOS Fenster eine Zahl (z.B. 350) eintippen können und diese Zahl ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 5 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 9 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 4 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...