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

Verständnisfrage zur For-Schleife

Frage Entwicklung Batch & Shell

Mitglied: Penny.Cilin

Penny.Cilin (Level 3) - Jetzt verbinden

26.03.2013 um 13:33 Uhr, 1862 Aufrufe, 8 Kommentare

Es geht darum Batches eine zeitlang mittels der For-Schleife anzuhalten. Allerdings sind die Zeiten leider nicht identisch, als wenn man den Ping-Befehl dazu nutzt.

Bisher habe ich in meinen Batches als Pause immer den Befehl
For /L %%var in (1, 1, 10000) Do Echo. > NUL
benutzt. In der Annahme, daß der Batch 10 Sekunden pausiert.

Ich habe nun einen Vergleich gemacht und muß festellen, daß die Zeiten der pause bein der For-Schleife immer unterschiedlich sind. Voran liegt daß?


Gruß Penny.

Hier der Testcode, welchen ich verwendet habe:

01.
@Echo off 
02.
:: CLS 
03.
Setlocal ENABLEEXTENSIONS & Setlocal ENABLEDELAYEDEXPANSION 
04.
 
05.
Echo For /L mit Params 1,1,1000 
06.
Echo Start: %time:~,8% 
07.
 
08.
For /L %%S in (1, 1, 10000) Do Echo. > NUL 
09.
Echo Ende:  %time:~,8% 
10.
 
11.
Echo. 
12.
 
13.
Echo Ping 
14.
Echo Start: %time:~,8% 
15.
 
16.
ping 127.0.0.1 -n 11 > nul  
17.
 
18.
Echo Ende:  %time:~,8%
Hier die Ausgaben, welche erzeugt wurden:

Z:\ > Test_Counter.cmd
For /L mit Params 1,1,1000
Start: 13:28:38
Ende: 13:28:41

Ping
Start: 13:28:41
Ende: 13:28:51

Z:\ > Test_Counter.cmd
For /L mit Params 1,1,1000
Start: 13:30:40
Ende: 13:30:43

Ping
Start: 13:30:43
Ende: 13:30:53

Z:\ > Test_Counter.cmd
For /L mit Params 1,1,1000
Start: 13:31:00
Ende: 13:31:03

Ping
Start: 13:31:03
Ende: 13:31:13
Z:\ >
Mitglied: flow.ryan
26.03.2013 um 13:39 Uhr
Hallo,

das könnte daran liegen, dass ein PC die Schleife schneller durchläuft als ein anderer -> Bessere CPU, mehr RAM, etc pp.

Gruß,
Florian
Bitte warten ..
Mitglied: andimue
26.03.2013, aktualisiert um 14:22 Uhr
Hallo Penny,

was brachte dich auf die Idee, dass ein for-Loop, der von 1-10000 läuft genau 10 Sekunden dauert?
Die Laufzeit ist m.E. von der Auslastung des Rechners abhängig

Ein paar nette Beispiele zu den verschiedenen Möglichkeiten einen WAIT zu realisieren gibts u.a. hier: http://www.robvanderwoude.com/wait.php

Gruß Andi

P.S: dein ECHO mit dem Text ist übrigens nicht ganz richtig, du zählst nicht auf 1000 sondern auf 10000
Bitte warten ..
Mitglied: killtec
26.03.2013 um 13:45 Uhr
Hi,
zum pausieren gibt es ein kleines zusatztool. Das nennt sich sleep. Haben wir hier auch im Einsatz. Man sagt dann einfach sleep 10 (das sind dann 10 sekunden).

Einfach mal nach googlen.

Gruß
Bitte warten ..
Mitglied: Penny.Cilin
26.03.2013 um 14:09 Uhr
Zitat von andimue:
>
P.S: dein ECHO mit dem Text ist übrigens nicht ganz richtig, du zählst nicht auf 1000 sondern auf 10000

@andi haste recht. War ahlt zu faul zum Copy+Paste


Gruss Penny.
Bitte warten ..
Mitglied: Penny.Cilin
26.03.2013 um 14:12 Uhr
Hallo Killtec,

ja weiß ich, kenne ich auch vom Resource Kit W2K3. Nur wenn möglich, setze ich das ein, was onboard ist, und vermeide Zusatztools wenn möglich. Denn meine Batches setze ich in verschiedene Umgebungen ein. Und ich muß dann jedesmla prüfen, Tool A, Tool B, usw. in der Umgebung vorhanden ist und unterstützt wird.


Gruß Penny.
Bitte warten ..
Mitglied: bastla
26.03.2013, aktualisiert um 18:30 Uhr
Hallo Penny.Cilin!

VBS sollte ja generell zur Verfügung stehen - damit ließe sich eine Pause so realisieren:
01.
set Pausiere="%temp%\Pausieren.vbs" 
02.
>%Pausiere% echo WScript.Sleep WScript.Arguments(0)*1000 
03.
:: 
04.
:: 
05.
:: Aufruf im Batch für eine Pause von etwa 10 Sekunden: 
06.
%Pausiere% 10
Natürlich kannst Du am Ende des Patches die Datei "%Pausiere%" wieder löschen.

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
26.03.2013 um 19:47 Uhr
Hallo Penny.Cilin.

Es gibt da (neben dem TIMEOUT Befehl neuerer Windowsversionen) das gute alte Ping. Mit dem lässt sich fast millisekundengenau arbeiten, wenn man von der Ladezeit des ping.exe Prozesses mal absieht. Möglich wäre in dem Fall das Anpingen einer nicht vergebenen IP-Adresse. Z.B. 192.0.2.0, die im Adressbereich "TEST-NET" liegt und für Präsentationen und Codebeispiele reserviert ist.
>nul ping -n 1 -w 10000 192.0.2.0
Die Zahl hinter der Option -w gibt das Zeitlimit in Millisekunden an.

Grüße
rubberman
Bitte warten ..
Mitglied: Penny.Cilin
27.03.2013 um 09:24 Uhr
OK, danke für die vielen Antworten. Werde dies in meine Knowledgebase übernehmen.
Und administrator.de/faq/32 durchführen.


Gruss Penny.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
FOR Schleife mit LOOP und nachfolgender FOR Schleife
gelöst Frage von miczarBatch & Shell6 Kommentare

Hallo zusammen, ich habe ein Problem mit einem Batchfile. Situation: im Netzwerk ist kein WINS mehr vorhanden und so ...

Batch & Shell
FOR Schleife läuft nicht
gelöst Frage von sugramBatch & Shell4 Kommentare

Hallo Ich glaube ich sehe den Wald vor lauter Bäumen nicht. Aber ich bekomme die FOR Schleife nicht zum ...

Batch & Shell
For Schleife kaputt?
gelöst Frage von Peter32Batch & Shell5 Kommentare

Hallo, ich finde den Fehler nicht irgendwie bekomme ich ständig denselben Inhalt in "Name.txt" und kann dann nicht weiterarbeiten ...

Neue Wissensbeiträge
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 2 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 2 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 14 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 20 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...