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 Per Bat-File Programm starten und nach einer bestimmten Zeit wieder beenden

Mitglied: max5moritz

max5moritz (Level 1) - Jetzt verbinden

23.05.2010, aktualisiert 18.10.2012, 9051 Aufrufe, 7 Kommentare

Servus und Frohe Pfingsten,

ich bitte um Eure Mithilfe, Danke im Voraus.

ich möchte per BAT den VLC starten und nach einer Zeitvorgabe, kann zwischen 5 min und 1 - 2 stunden liegen, wieder beenden.
Der Aufruf ist ja per Taskmanager möglich. Warum dann BAT? Weil ich die Parameter dann flexibel übergeben kann.
Hier mein Entwurf:

01.
@echo off 
02.
set Ziel=%2 
03.
set Name=%3 
04.
if "n"=="n%2" goto mf1 
05.
if "n"=="n%3" goto mf1 
06.
goto m%1 
07.
 
08.
:m1 
09.
start /w C:\Video\VLC\vlc.exe -vvv http://www.dradio.de/streaming/dlf.m3u --sout file/ps:D:\Medien\Audio\Radio\%ziel%\%name%.ps 
10.
if not "n"=="n%4" ping -n %4 127.0.0.1 > NUL 
11.
if "n"=="n%4" goto ende 
12.
taskkill /F /IM vlc.exe 
13.
goto ende 
14.
 
15.
:m2 
16.
start C:\Video\VLC\vlc.exe -vvv http://gffstream.ic.llnwd.net/stream/gffstream_w19a --sout file/ps:D:\Medien\Audio\Radio\%ziel%\%name%.ps 
17.
if not "n"=="n%4" ping -n %4 127.0.0.1 > NUL 
18.
if "n"=="n%4" goto ende 
19.
taskkill /F /IM vlc.exe 
20.
goto ende 
21.
 
22.
:mf1 
23.
echo Ein Parameter fehlt, das Programm wurde beendet 
24.
pause 
25.
 
26.
:ende 
27.
cls 
28.
exit
Was sicher nicht wirklich gut gelöst ist, ist der Timer via ping
Für kurze Zeiten (bis 5 min) vielleicht eine Lösung, doch für 1 - 2 Stunden? Delay habe ich probiert, geht aber nicht.
Auch sollten die goto m%1 durch ein Schleifchen ersetzt werden, da dort eigentlich wieder eine Liste im Aufbau wie folgt:

01.
#EXTINF:1,MDR Jump 
02.
http://c22033-l.i.core.cdn.streamfarm.net/22004mdrjump/live/3087mdr_jump/live_de_128.mp3 
03.
#EXTINF:2,Deutschlandfunk 
04.
http://dradio.ic.llnwd.net/stream/dradio_dlf_m_a
zum Einsatz kommen soll. Nur soll diesmal nur ein Zeilenpaar gefunden und ausgewertet werden, wobei der Parameter %1 die Zahl hinter #EXTINF: sein soll.

Da VLC sich nur widerwillig beenden läßt, deshalb der taskkill-Befehl.
Für den Fall das Parameter %4 absichtlich vergessen wurde, dient die Abfrage in Zeile 11 / 18:
Dann läuft der VLC bis ultimo oder die Festplatte überquillt

Für Anregungen und Hilfestellungen danke ich jetzt schon.

So long
max5moritz
Mitglied: bastla
23.05.2010 um 22:28 Uhr
Hallo max5moritz!

Eine elegantere Pause lässt sich mit der "sleep.exe" aus den Windows Server 2003 Resource Kit Tools erzeugen ...
Wie soll denn die "Auswertung" des Zeilenpaares erfolgen? Das Auslesen lässt sich etwa so umsetzen:
01.
set "Liste=D:\Medien\Audio\Radio\Playlist.txt" 
02.
 
03.
set "ZeilenNr=" 
04.
for /f "delims=:" %%i in ('findstr /b /n "#EXTINF:%1," "%Liste%"') do set /a ZeilenNr=%%i-1 
05.
if not defined ZeilenNr echo Zeile %1 nicht gefunden! & goto :eof 
06.
 
07.
set "Z1=" & set "Z2=" 
08.
for /f "delims=" %%i in ('more +%ZeilenNr% "%Liste%"') do if not defined Z2 call :ProcessLine "%%i" 
09.
 
10.
echo Hier weitere Verarbeitung von "%Z1%" und "%Z2%" ... 
11.
goto :eof 
12.
 
13.
:ProcessLine 
14.
if not defined Z1 (set "Z1=%~1" & goto :eof) 
15.
if not defined Z2 set "Z2=%~1" 
16.
goto :eof
Grüße
bastla

P.S.: Ein "exit" ist eigentlich nur mit einem "/B" (was hier aber vermutlich nicht benötigt wird) sinnvoll (und ansonsten beim Testen nur lästig) - gezielt beenden lässt sich ein Batch auch mit "goto :eof" ...
Bitte warten ..
Mitglied: max5moritz
23.05.2010 um 23:56 Uhr
Danke! Super! Genauso sollte es sein!

Wie bekomme ich den blauen Teil #EXTINF_1,MDR Jump_test1 aus dem Dateinamen?

Grüße
m5m
Bitte warten ..
Mitglied: bastla
24.05.2010 um 00:01 Uhr
Hallo m5m!

Soferne Du (vermutlich) auch das Komma nicht benötigst, einfach so:
for /f "tokens=1* delims=," %%i in ("%Z1%") do set "Titel=%%j"
- bei Bedarf könntest Du das Komma aber natürlich in das Ergebnis auch wieder "einbauen":
for /f "tokens=1* delims=," %%i in ("%Z1%") do set "Titel=,%%j"
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
24.05.2010 um 11:27 Uhr
Zitat von bastla:
[OT]
P.S.: Ein "exit" ist eigentlich nur mit einem "/B" (was hier aber vermutlich nicht benötigt wird)
sinnvoll (und ansonsten beim Testen nur lästig)
- gezielt beenden lässt sich ein Batch auch mit "goto :eof" ...

In diesem Fall stimme ich dir zu bastla,
aber wenn in einer Sub eine Abbruchbedingung festgestellt wird, nützt Goto :Eof nichts.
Dort kann man Exit aber schön benutzen um über die Rückgabe eines Errorlevels den
Hauptbatch zum Beenden/andere Aktion zu veranlassen.
01.
::Example.cmd::::::::::::::::::::::::::::::::::::::::::::::::: 
02.
@echo off&setlocal 
03.
for %%A in (one two fail three) do call :sub %%A||goto :abort 
04.
:abort 
05.
goto :eof 
06.
:sub 
07.
echo %1 
08.
set retErr=0 
09.
if "%1" EQU "fail" set retErr=1 
10.
exit /B %retErr% 
11.
::Example.cmd:::::::::::::::::::::::::::::::::::::::::::::::::
[/OT]

Gruß
LotPings
Bitte warten ..
Mitglied: 60730
24.05.2010, aktualisiert 18.10.2012
Servus,

Biber hat mal einen kleineren Exkurs in Sachen AT Steuerung geschrieben, den solltest du dir mal ansehen.

Im Prinzip mußt du den nur um einen doppelten Tasklist erweitern, um die PID der gerade gestarteten VLC Instanz zu erkennen und diese Instanz dann mit Bibers AT Bausatz "kicken".
Andernfalls kickst du ja den zuerst gefundenen VLC - nicht den, den du grade kicken willst (wenn mehrere VLC aktiv sind).

Gruß

edit:

Suchst du nach Biber at Batch kommt der als erster Treffer.

https://www.administrator.de/forum/at-job-zu-einem-beliebigen-%28unbekan ...
@Biber: du solltest dir die batch.com besorgen, die ist anscheinend frei - Biber@batch.com - was ne aussagekräftige emilie
Bitte warten ..
Mitglied: bastla
24.05.2010 um 12:59 Uhr
@LotPings
[OT]
... Rückgabe eines Errorlevels ...
Das war mit meinem (etwas verkürzten) ... nur mit einem "/B" ... gemeint ...
{/OT]

Grüße
bastla
Bitte warten ..
Mitglied: max5moritz
25.05.2010 um 10:27 Uhr
@alle
Danke für die tollen Ergänzungen. Das mit dem taskkill hatte ich mir schon überlegt. Da kann ich die PID gut gebrauchen. Für alle die einen Timer in einer Batch brauchen, folgende Lösung, gefunden By nero-chrischi, ein wenig modifiziert von mir, da ich davon ausgehe, dass der Timer per call öfter gebraucht wird:
01.
@echo off 
02.
if exist %pd%wait%1.vbs goto end 
03.
echo Option Explicit > %pd%wait%1.vbs 
04.
echo Dim Progr, Zeit, i, oArgs >> %pd%wait%1.vbs 
05.
echo set oArgs    = Wscript.Arguments >> %pd%wait%1.vbs 
06.
echo For  i = 0 to oArgs.Count - 1 >> %pd%wait%1.vbs 
07.
echo If i = 0 Then Zeit      =         oArgs.item(i) >> %pd%wait%1.vbs 
08.
echo Next >> %pd%wait%1.vbs 
09.
echo If InStr( Zeit, "." ) Then Zeit = Left( Zeit, InStr( Zeit, "." ) -1 ) >> %pd%wait%1.vbs 
10.
echo If InStr( Zeit, "," ) Then Zeit = Left( Zeit, InStr( Zeit, "," ) -1 ) >> %pd%wait%1.vbs 
11.
echo On Error Resume Next >> %pd%wait%1.vbs 
12.
echo Zeit = Zeit / 10*10 >> %pd%wait%1.vbs 
13.
echo On Error GoTo 0 >> %pd%wait%1.vbs 
14.
echo WScript.Sleep Zeit*1000 >> %pd%wait%1.vbs 
15.
echo If Progr = "" Then WScript.Quit >> %pd%wait%1.vbs 
16.
echo WScript.CreateObject("WScript.Shell").Run Progr >> %pd%wait%1.vbs 
17.
:end 
18.
 
19.
rem   ------------------------------------------------------ 
20.
rem   .-'Nun die Befehle'-. 
21.
rem   Die Zahl nach der %pd%wait%1.vbs sind die wartenden Sekunden 
22.
rem   Keine Zahl Bedeuten ca. 0.1 Sek 
23.
rem   ------------------------------------------------------ 
24.
 
25.
echo   Das Programm %1 läuft noch, bitte warten ... 
26.
echo. 
27.
echo   Timer ist nach %2 s abgelaufen! 
28.
echo. 
29.
%pd%wait%1.vbs %2 
30.
cls 
31.
del %pd%wait%1.vbs 
32.
goto :eof
Die Parameter %pd% und %1 sowie %2 werden von der aufrufenden Batch übergeben.
Der erste übernimmt den Pfad von der aufrufenden Batch, falls man die Batch per Task-Planer starten möchte,
der Zweite macht den Timer unterscheidbar, nicht das nachher ein weiterer Aufruf den ersten killt und %2 legt die Laufzeit in Sekunden fest.

Das Problem ist also gelöst, Danke nochmals und

So long,
max5moritz
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch-File zum beenden von laufenden Programmen

gelöst Frage von eb1980Batch & Shell7 Kommentare

Hallo Gemeinde, ich habe folgendes anliegen: Ich möchte gern via Script prüfen ob diverse Programme ausgeführt werden. (Outlook, Excel ...

Windows Tools

Programm auf bestimmten Monitor starten

gelöst Frage von djevil-adWindows Tools4 Kommentare

Hallo, ich hab da mal eine recht simple Frage, aber ich weiss nicht wie ich es am Besten machen ...

Batch & Shell

Programm beenden

gelöst Frage von garciamBatch & Shell4 Kommentare

Hallo zusammen Ich habe ein Problem, bei dem ich nicht weiterkomme Ich muss ein Programm zu einer bestimmten Zeit ...

Batch & Shell

Mit Bat Datei einen Dateinamen ändern und dann ein Programm Starten

Frage von MelhafBatch & Shell2 Kommentare

Hallo Leute, es geht darum das ich vor einem Programmstart eine Datei immer Umbenennen muss Und das immer Per ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 50 MinutenHumor (lol)

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 9 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 22 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit14 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless14 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...