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

gelöst Batch-Prog führt echo 4x aus

Mitglied: deb10er0

deb10er0 (Level 1) - Jetzt verbinden

15.04.2009, aktualisiert 15:50 Uhr, 3413 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
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 10 StundenServer-Hardware1 Kommentar

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO Quelle: iLO ist gefährdet

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 19 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung30 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Batch & Shell
OU an eine Variable übergeben
gelöst Frage von oesi1989Batch & Shell22 Kommentare

Hallo, ich würde gerne alle OUs an eine Variable übergeben und danach einen Teil per .remove entfernen. Das Anzeigen ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...