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 Alle anderen Fenster mit dem selben Titel schliessen

Mitglied: ceerotolerance

ceerotolerance (Level 1) - Jetzt verbinden

31.07.2009, aktualisiert 17:25 Uhr, 4096 Aufrufe, 2 Kommentare

ich wollte immer nur eine Instanz meines Batch Skripts zulassen...

Hallo zusammen

ich habe wieder bisschen gebätscht.
Wie der Titel schon suggeriert, wollte ich, dass sich alle offenen Batch-Skripte mit dem selben Titel automatisch schliessen, wenn ich ein neues aufmache. Diese Aufgabe konnte ich einigermassen bewältigen. Nur leider hat es noch einige unschönheiten drin, welche vielleicht jemand mit mir ausmerzen kann.

Das Skript sieht bisher so aus:
01.
@echo off & setlocal 
02.
title=test.bat 
03.
 
04.
REM zweimal suchen, damit an erster Stelle durchnummeriert wird 
05.
tasklist /FI "WINDOWTITLE EQ test.bat" | findstr "cmd.exe" | findstr /n /c:"cmd.exe" >echo.txt 
06.
for /f "delims=:" %%i in ('findstr /n $ "echo.txt"') do set /a linecount=%%i  
07.
REM echo linecount = %linecount% 
08.
REM letzte Zeile beinhaltet die neuste PID die erhalten bleiben muss 
09.
for /F "tokens=1-3* delims=: " %%i in (echo.txt) do set /a count=%%i & set /a pid=%%k & call :Proc 
10.
 
11.
:Proc 
12.
	echo Instanz %count% hat PID: %PID% 
13.
	REM Letzte Instanz am Leben lassen 
14.
	if "%count%" == "%linecount%" goto :End 
15.
		echo kill it 
16.
		taskkill /FI "PID EQ %PID%" >nul 
17.
		goto :EOF 
18.
		 
19.
:End 
20.
	echo Ich darf leben... 
21.
	pause 
22.
	del echo.txt
Am schlimmsten ist es, dass :Proc noch ein zweites Mal aufgerufen wird, nachdem alle alten Fenster geschlossen wurden. Das schadet der Funktionalität zwar nicht, jedoch möchte ich gerne verstehen wieso das gemacht wird und wie ich es besser machen könnte. Ausserdem bin ich offen für Anregungen wie der Code sonst noch kürzer oder sonst irgendwie besser geschrieben werden könnte.

Bin offen für alle Inputs. Danke und Gruss

cee
Mitglied: Pjordorf
31.07.2009 um 17:38 Uhr
Hallo,

füge ein bei Zeile 15 und Zeile 30.


01.
> @echo off & setlocal 
02.
> title=test.bat 
03.
>  
04.
> REM zweimal suchen, damit an erster Stelle durchnummeriert wird 
05.
> tasklist /FI "WINDOWTITLE EQ test.bat" | findstr 
06.
> "cmd.exe" | findstr /n /c:"cmd.exe" >echo.txt 
07.
> for /f "delims=:" %%i in ('findstr /n $ 
08.
> "echo.txt"') do set /a linecount=%%i  
09.
> REM echo linecount = %linecount% 
10.
> REM letzte Zeile beinhaltet die neuste PID die erhalten bleiben muss 
11.
> for /F "tokens=1-3* delims=: " %%i in (echo.txt) do set /a 
12.
> count=%%i & set /a pid=%%k & call :Proc 
13.
 
14.
rem verhindern das Proc nochmals durchlaufen wenn es nichts mehr gibt 
15.
goto EOF 
16.
 
17.
> :Proc 
18.
> 	echo Instanz %count% hat PID: %PID% 
19.
> 	REM Letzte Instanz am Leben lassen 
20.
> 	if "%count%" == "%linecount%" goto :End 
21.
> 		echo kill it 
22.
> 		taskkill /FI "PID EQ %PID%" >nul 
23.
> 		goto :EOF 
24.
> 		 
25.
> :End 
26.
> 	echo Ich darf leben... 
27.
> 	pause 
28.
> 	del echo.txt 
29.
30.
>:EOF 
31.
32.
> 


Peter
Bitte warten ..
Mitglied: ceerotolerance
02.08.2009 um 09:18 Uhr
Ja das war's. Auf Zeile 30 ist das Label gar nicht nötig, da das Ende der Datei sowieso mit :EOF bezeichnet wird.

Kann mir jemand noch sagen, wie ich es machen könnte, ohne dass ich eine temporäre Datei benötige?

Das wär super. Danke und Gruss
cee
Bitte warten ..
Ähnliche Inhalte
Microsoft

Explorer Fenster schließen von Alleine

Frage von SnejmannMicrosoft10 Kommentare

Hallo zusammen, Ich habe da ein größeres Problem und hoffe das ihr mir helfen könnt. Ausgangspunkt ist folgender: Wir ...

Windows 8

Fenster schließen bei Aktualisierung der GPOs

Frage von LordBelaWindows 85 Kommentare

Hallo Zusammen, wir lassen in unserer Domäne Netzlaufwerke per GPOs mounten. Das Problem, das wir seit Windows 8 feststellen ...

Utilities

Putty: Schließen des Fenster nach Logout verhindern

gelöst Frage von Fenris14Utilities1 Kommentar

Guten Tag, ist es möglich das Schließen des Fenster beim Logout über SSH zu verhindern, um sich zum Beispiel ...

Windows Tools

Untergeordnete Fenster auf selben Monitor anzeigen

Frage von djevil-adWindows Tools2 Kommentare

Hallo, Ich habe leider Probleme mit meiner Dual Monitor Konfiguration, ich weiss zwar, dass Windows sich merkt, auf welchem ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...