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

Problem mit einer Batch Datei

Frage Microsoft

Mitglied: 6741

6741 (Level 2)

17.07.2006, aktualisiert 18.07.2006, 5237 Aufrufe, 19 Kommentare

Hallo,

wenn ich z.b. in einer Batch Datei notepad.exe aufrufe, dann läuft die Batch Datei erst weiter, wenn ich das Programm notepad schliesse.
Das gleiche wäre für den Explorer oder den calc.

Wie kann man diesen "Stop" umgehen ???
Mitglied: Biber
17.07.2006 um 14:32 Uhr
Moin fwd,

mach den Aufruf in der *.bat-Datei mit
....
Start "wattuwillst" notepad.exe

-bzw-

Start x:\pfad\meinNeuer.txt

(wenn zum Beispiel *.txt-Dokumente bei Dir standardmäßig mit Notepätt.exe aufgerufen werden würden).

Hilfe zum Start-Befehl vom CMD-Prompt aus mit
Start /?

Gruß
Biber
Bitte warten ..
Mitglied: 6741
17.07.2006 um 14:40 Uhr
uiii

fine ..

ein hab ich noch ...

ich möchte einen Prozess abfragen ist der da, dann solls weiter gehen ....

z.b. ist notepad geöffnet ( überprüfen ) dann mail schreiben ( z.b. mit sendmail.exe )

wie kann ich den Prozess abfragen ??
Bitte warten ..
Mitglied: AxelHahn
17.07.2006 um 15:22 Uhr
Wenn ein neueres Win da ist (vielleicht auch ab Win2000 ?? - weiss ich jetzt nicht):
Das Tool wird dir helfen
%WINDOR%\system32\tasklist

In dessen Ausgabe mit findstr ab Zeilenanfang suchen:
tasklist.exe | findstr "^mein_Programm" && goto gefunden
echo Programm wird derzeit nicht ausgefuehrt.
goto ende

:gefunden
echo Das Programm ist gestartet.
(...)
Axel
Bitte warten ..
Mitglied: rc-computer
17.07.2006 um 15:25 Uhr
Hi,

mit dem befehl `tasklist' siehst du die laufenden Prozesse

01.
@echo off 
02.
 
03.
:: Beispielsweise explorer.exe 
04.
tasklist | find /i "explorer.exe" > nul 
05.
 
06.
:: wenn explorer.exe "existiert" dann "mach dies" 
07.
if %errorlevel% == 0 ( 
08.
	echo mach dies 
09.
)
Bitte warten ..
Mitglied: 6741
17.07.2006 um 15:32 Uhr
jetzt müsste ich nur noch eine Schleife haben ...

die immer wieder überprüft ob der prozess da ist

wenn da dann zum punkt da, wenn nicht dabb wieder von vorne ( evtl ein kleinen Wait ( 30-60sec ))

okay bin etwas weiter ...

_______________________________________________________________________

:start
@ echo off
tasklist.exe | findstr "abc" && goto gefunden
echo Programm wird derzeit nicht ausgefuehrt.
goto start

:gefunden

echo Das Programm ist gestartet.


goto start

_______________________________________________________________________

jetzt müsste ich noch ein wait einsetzen, gibt es aber unter XP nicht was kann man alternative einsetzen ... ???

so ca. 60 sec Warten ...
Bitte warten ..
Mitglied: AxelHahn
17.07.2006 um 16:14 Uhr
Hallo,

Mit dem ping kann man eine Pause machen - Ein Sleep gibt es noch im Ressource Kit oder mit zusätzlichen Kommandozeilentools.

Ein ping /n 31 localhost >nul ... wartet 30 Sekunden - also so:



:loopstart
tasklist.exe | findstr "^mein_Programm" && goto gefunden
echo warte 30 sec ...
ping /n 31 localhost >nul
goto loopstart

echo Programm wird derzeit nicht ausgefuehrt.
goto ende

:gefunden
echo Das Programm ist gestartet.
(...)



Axel
Bitte warten ..
Mitglied: 6741
17.07.2006 um 16:24 Uhr
danke ...

nette Hilfe ...

warum steht der Wert auf 31 und nicht auf 30 gibt es da einen Grund ???

manmal steht da "Das Programm ist gestartet"

und dann wieder der Prozess ... abc.exe xxxx Console 0 3.555k usw

etwas komisch .. teste mal selbst
Bitte warten ..
Mitglied: Biber
17.07.2006 um 16:28 Uhr
warum steht der Wert auf 31 und nicht auf 30 gibt es da einen Grund ???

Mengenrabatt.
Du packst ja auch 31 Fragen in einen Beitrag...
Wahre Antwort: Ping.exe ist ja eigentlich nicht zum Zeitmessen/Pause machen konzipiert.
Irgendeine Computerzeitschrift hat das mal aufgeschnappt und darauf hingewiesen, dass eine halbe Minute mit ping.exe warten nicht exakt 30,000 Sekunden ( = Dreissigtausend Millisekunden) bedeutet.
Wenn man/frau denn sichergehen wollte, dass tatsächlich mindestens 30 Sekunden um sind, dann: eine Sekunde MEHR angeben.

Und Generationen haben es nachgeplappert...
Kannst auch 28 hinschrieben oder 33.... wird auch mal genau treffen.

Biber
Bitte warten ..
Mitglied: AxelHahn
17.07.2006 um 16:31 Uhr
Hallo,

der ping erfolgt unter Win jede Sekunde einmal. Der erste Ping sofort. Daher ist bei n Sekunden Pause (n+1) mal das Ping auszuführen.

http://www.axel-hahn.de/axel/page_compi/bat_tipps.htm#wait


OT:
Das ist etwa so die klassische Knobelaufgabe: der Dr. verschreibt 10 Tabletten - ich soll jeden halben Tag eine nehmen. Wie lange reichen die Tabletten?


Axel
Bitte warten ..
Mitglied: AxelHahn
17.07.2006 um 16:42 Uhr
@Biber:
Klar ist ping eine absolute Krücke, aber die einzige Hilfe mit Windows-Boardmitteln eine Pause einzulegen (aus der Default-CD-Installation heraus - RK schleift das sleep ja mit).

Ich weiss schon, warum ich mir die Bash installiert habe. Aber das führt jetzt hier zu weit ...

Axel
Bitte warten ..
Mitglied: 6741
17.07.2006 um 16:43 Uhr
wäre die Frage wann du beim Arzt warst ... ;>)))

rennt prima

Danke !!!
Bitte warten ..
Mitglied: Biber
17.07.2006 um 16:48 Uhr
@Axel:

So sehr ich Deine Homepage schätze... das glaube ich nicht.

Rein theoretisch mag das (analog zum Tabletten-Einwerfen) stimmen, aber das es im (annähernd) genauen Sekundentakt funktioniert, ...niemals.

Ich sach: ping mir 31x.
Ping sacht: OK.
Ping pingt (nach dem Starten und dem OK-Sagen...also bei t+Vierzehntelsekunden).
Der Ping geht über 7 Brücken... ist erledigt nach weiteren 3einhalb Zehntelsekunden.
Zeit steht bei t+Vierzehntel+Dreieinhalbzehntel.
Wie lang wird jetzt bis zum nächsten Pingen gewartet??
Bis t+1sek?
Oder bis t+0,75 Sek + 1 Sek??

Grüße
Frank

[Edit]
P.S. Inzwischen haben auch die beiden anderen geantwortet...
@Axel: Nicht falsch verstehen .. ich wäre der Allerletzte, der M$-Software in Schutz nimmt.
Dafür hab ich Zeugen hier im Forum... *gg
[/Edit]
Bitte warten ..
Mitglied: AxelHahn
17.07.2006 um 17:11 Uhr
ich denke, wir sind uns da einig:
wenn man etwas artverwandtes wie Zeitmessung braucht (oder auf Performance achten muss), sollte man Batchlösungen knicken. Bei der Wartezeit von 30 Sek ist es egal, ob man nun 27 oder 38 schreibt - es bleibt "etwa" eine halbe Minute und fertig.
Es ging nur ums Prinzip - bei Wartepausen von 2..5 Sekunden kann man mit dem Verfahren (n+1) Sekunden arbeiten. Bei einer halben Minute oder was auch immer kann man sich so seinen groben Werten in die Zeile setzen. Das spielt selbstverständlich keine Rolle mehr.

btw:
Unter Windows kann man gar nicht im Tausendstel-Sekunden-Bereich messen. gettickcount gibt zwar etwas in Millisekunden zurück, aber das System ist so getaktet, dass man Abtastraten von ca. 25 ms hat. Bei deiner Messung (oder Ausgaben unten) bitte aufpassen

Rein für Anhaltswerte (ohne Angabe von Standardabweichung, Mittelwertten oder sonstigem staistischen Kram):
Hier mal die Ausgabe mit dem Time-Kommando (aus CYGWIN):

bash-2.05b$ time ping /n 10 localhost >nul

real 0m9.057s
user 0m0.015s
sys 0m0.015s
bash-2.05b$ time ping /n 20 localhost >nul

real 0m19.055s
user 0m0.015s
sys 0m0.015s
bash-2.05b$ time ping /n 30 localhost >nul

real 0m29.052s
user 0m0.030s
sys 0m0.000s


Ich denke, die Formel kommt recht gut hin.

Wo kann man den Thread jetzt schliessen ??
Bitte warten ..
Mitglied: Biber
17.07.2006 um 17:34 Uhr
Wo kann man den Thread jetzt schliessen ??
Das kann in diesem Fall nur der Thread-Ersteller (der zielsicher seine Batch-Frage unter "Windows" gepostet hat) oder einer der Mods in diesem Bereich.

@fwd: Büdde nächstes Mal Batchkrams in "Batch & Shell" stellen...da hätte diese Diskussion viel besser gepasst...

"Windows" passt nicht so ganz 100%... ist so ähnlich wie in unserer Kantine.
Die sagen immer ganz überzeugend: "Bratensoße passt immer!"

Na ja, auf den Teller schon... aber auch das würde zu weit führen jetzt...

Schönen Nachmittag
Biber
Bitte warten ..
Mitglied: 6741
17.07.2006 um 19:00 Uhr
Hi @all ...

der weg führt zum ziel ...

Aufgabe mit wenig "Aufwand" erledigt ..

ne VB wäre mir auch lieber, kann ich aber nicht ...

gucke beim nächsten mal auch genau aufs Forum Sub Dir
Bitte warten ..
Mitglied: TheIch
17.07.2006 um 19:34 Uhr
schreib einfach ma start davor.... also start notepad.exe zum beispiel. ich würd sagen, dass das funktioniert

Mit freundlichen Grüßen

TheIch


verfdammt...erst lesen, dann posten. admin bitte löschen! tut mir leid, is schon spät heut
Bitte warten ..
Mitglied: 6741
18.07.2006 um 08:24 Uhr
Moin und Danke nochmals ...

würde gerne noch eine Bedingung klären ....

wie kann ich das Abfragen ?

wenn ein Prozess eine gewisse Speichergröße erreicht soll der Prozess gestopt bzw gekillt werden..

wer hat dazu eine Idee ?

Es gibt ein Programm bei uns das bleibt ab einen Speichernutzung von ca. 400MB stehen, ist das errreicht würde die die EXE killen.

Danke ...
Bitte warten ..
Mitglied: AxelHahn
18.07.2006 um 08:55 Uhr
Frage:
Hast du

%windir%\system32\tasklist /?


aufgerufen?? Hier stehen die Kriterien, nach denen du filtern kannst (Speicherverbrauch, CPU-Time, ...). Inklusive Vergleichsoperatoren grösser/ kleiner/ gleich/ ...
Beispiele liefert die Hilfe-Ausgabe auch.

Zum Beenden des Prozesses gibt es im selben Ordner die taskkill.exe. Bitte auch einmal mit /? aufrufen.

Schönen Tag noch!
Axel
Bitte warten ..
Mitglied: Biber
18.07.2006 um 08:57 Uhr
...neue Frage, neuer Thread, fwd...

Setz bitte jetzt diesen Thread auf gelöst (unabhängig von der Brauchbarkeit meiner Antwort).

Unter dieser Überschrift in dieser Rubrik hat sonst kein(e) andere(r) eine Chance, hier eine passende Lösung für eigene Probleme zu finden, wenn Du immer wieder mit "Ach übrigens, da fällt mir ein..." neue Aspekte dranflanscht.

Im Batch:
01.
 .... 
02.
for /f "tokens=6-7 delims=. " %%i in ('tasklist^|find /i "Speicherfresser.exe"') do if %%i%%j GEQ %Speichermax% kill "Speicherfresser.exe"
...wobei "Speicherfresser.exe" der Name Deiner zu killenden *.exe-Datei ist und in der numerischen Variablen %SpeicherMax% vorher das Limit gesetzt wurde, z.B. so:

Set /a Speichermax=40000


Gruß
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...