VLC Shutdown Script (Optimierung)
Hallo zusammen, eigentlich habe ich schon ein Script das funktioniert, aber ich denke es ginge erstens einfacher und zweitens evtl. auch mehr als 9 Dateien.
Also das habe ich bis jetzt
Start myVLC.bat
play varmedia.bat
Soweit würde ich meinen dass es funktioniert, aber naja bastla oder biber würden es sauberer machen und darum frag ich mal *gg*
lg mc-dy
Start myVLC.bat
@echo on
set p=%~dp0
set a=%1
set a=%a:"=%
set b=%2
set b=%b:"=%
set c=%3
set c=%C:"=%
set d=%4
set d=%d:"=%
set e=%5
set e=%e:"=%
set f=%6
set f=%f:"=%
set g=%7
set g=%g:"=%
set h=%8
set h=%h:"=%
set i=%9
set i=%i:"=%
echo %a% > %p%varmedia.m3u
if not "%b%"=="" echo %b% >> %p%varmedia.m3u
if not "%c%"=="" echo %c% >> %p%varmedia.m3u
if not "%d%"=="" echo %d% >> %p%varmedia.m3u
if not "%e%"=="" echo %e% >> %p%varmedia.m3u
if not "%f%"=="" echo %f% >> %p%varmedia.m3u
if not "%g%"=="" echo %g% >> %p%varmedia.m3u
if not "%h%"=="" echo %h% >> %p%varmedia.m3u
if not "%i%"=="" echo %i% >> %p%varmedia.m3u
start "Start myVLC" /MIN "play varmedia.bat"
@echo off
vlc.exe varmedia.m3u vlc://quit
shutdown -s -t 60
lg mc-dy
8 Antworten
- LÖSUNG 60730 schreibt am 03.10.2011 um 00:13:46 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 01:10:50 Uhr
- LÖSUNG 60730 schreibt am 03.10.2011 um 01:34:06 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 02:29:30 Uhr
- LÖSUNG mc-doubleyou schreibt am 03.10.2011 um 15:59:20 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 16:22:53 Uhr
- LÖSUNG mc-doubleyou schreibt am 03.10.2011 um 16:49:40 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 17:01:52 Uhr
- LÖSUNG mc-doubleyou schreibt am 03.10.2011 um 16:49:40 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 16:22:53 Uhr
- LÖSUNG mc-doubleyou schreibt am 03.10.2011 um 15:59:20 Uhr
- LÖSUNG rubberman schreibt am 03.10.2011 um 02:29:30 Uhr
- LÖSUNG 60730 schreibt am 03.10.2011 um 01:34:06 Uhr
LÖSUNG 03.10.2011 um 00:13 Uhr
moin mcdoubledutch,
Nunja, erstens kommt es anders und zweitens, als man denkt.
Der Sinn des Scriptes mag mir nicht wirklich in den Kopf, magst du vielleicht etwas dazu schreiben, was funktionieren soll?
Das soll eine Drop2batch sein und der Sinn ist der, eventuelle "" zu entfernen, eine m3u zu schreiben?
Hallo zusammen, eigentlich habe ich schon ein Script das funktioniert, aber ich denke es ginge erstens einfacher und zweitens evtl. auch mehr als 9 Dateien.
Nunja, erstens kommt es anders und zweitens, als man denkt.
Der Sinn des Scriptes mag mir nicht wirklich in den Kopf, magst du vielleicht etwas dazu schreiben, was funktionieren soll?
Das soll eine Drop2batch sein und der Sinn ist der, eventuelle "" zu entfernen, eine m3u zu schreiben?
LÖSUNG 03.10.2011 um 01:10 Uhr
LÖSUNG 03.10.2011 um 01:34 Uhr
LÖSUNG 03.10.2011 um 02:29 Uhr
Hallo T-Mo,

Der Grund für den 2. Batch sollte wohl darin liegen, dass das Konsolefenster ebenso minimiert sein sollte. Klar kann man das aber auch in einer Datei unterbringen.
Ebenso ungetestet:
Grüße
rubberman
lieber zwei @ mehr
Das macht kaum einen Unterschied. Zum Aufhybschen muss dann doch das von dir verhasste @echo off herhalten Der Grund für den 2. Batch sollte wohl darin liegen, dass das Konsolefenster ebenso minimiert sein sollte. Klar kann man das aber auch in einer Datei unterbringen.
Ebenso ungetestet:
@echo off &setlocal
if %1_==_ goto :eof
if %1_==?_ (
start "" /MIN /wait vlc.exe varmedia.m3u vlc://quit
shutdown -s -t 60
goto :eof
)
>"varmedia.m3u" (for %%i in (%*) do echo %%~i)
start "Start myVLC" /MIN cmd /c "%~f0" ?
rubberman
LÖSUNG 03.10.2011 um 15:59 Uhr
Zitat von @rubberman:
...
Der Grund für den 2. Batch sollte wohl darin liegen, dass das Konsolefenster ebenso minimiert sein sollte. ...
...
Der Grund für den 2. Batch sollte wohl darin liegen, dass das Konsolefenster ebenso minimiert sein sollte. ...
Jupp genau, da das Fenster ja offen bleibt soll es wenigstens nicht stören und klein sein
if %1_==_ goto :eof
if %1_==?_ (
>"varmedia.m3u" (for %%i in (%*) do echo %%~i)
start "Start myVLC" /MIN cmd /c "%~f0" ?
Achja und das Fragezeichen am Schluss sorgt für genau selbige bei mir.
Vielen Dank!
lg mc-dy
LÖSUNG 03.10.2011 um 16:22 Uhr
Hallo mc-doubleyou.
Ich versuchs mal zeilenweise.
-1 erkläre ich mal nicht, sollte denke ich klar sein
-2 wenn dem Batch kein Argument übergeben wurde, resultiert %1_ zu nichts als einem Unterstrich. In dem Fall soll der Batch beendet werden.
-3 Hier ist der Unterstrich auf beiden Seiten eigentlich nutzlos. How ever. Wird der Batch mit einem Fragezeichen als Argument aufgerufen, werden die Zeilen in den Klammern (4-6) ausgeführt, wobei Zeile 6 dafür sorgt, dass der Batch beendet wird und nicht weiterläuft. Das Fragezeichen habe ich gewählt, weil es zu den verbotenen Zeichen in Pfad und Dateinamen zählt.
- 4 und 5 ist klar, oder?
- 8 und 9 werden ausgeführt, wenn andere Argumente (Dateien) übergeben werden.
- 8 Die FOR Schleife läuft über alle übergebenen Argumente (in %*) , ordnet sie nacheinander der Laufvariablen %%i zu, und entfernt bei der ECHO Ausgabe umschließende Anführungszeichen durch die Tilde in %%~i.
- 9 Der Batch ruft sich selbst erneut auf, mit dem Fragezeichen als Argument. Somit werden im 2. Durchlauf die Zeilen 4-6 ausgeführt.
Soweit die Theorie. Ob es funktioniert, musst du selbst testen.
Grüße
rubberman
Ich versuchs mal zeilenweise.
-1 erkläre ich mal nicht, sollte denke ich klar sein
-2 wenn dem Batch kein Argument übergeben wurde, resultiert %1_ zu nichts als einem Unterstrich. In dem Fall soll der Batch beendet werden.
-3 Hier ist der Unterstrich auf beiden Seiten eigentlich nutzlos. How ever. Wird der Batch mit einem Fragezeichen als Argument aufgerufen, werden die Zeilen in den Klammern (4-6) ausgeführt, wobei Zeile 6 dafür sorgt, dass der Batch beendet wird und nicht weiterläuft. Das Fragezeichen habe ich gewählt, weil es zu den verbotenen Zeichen in Pfad und Dateinamen zählt.
- 4 und 5 ist klar, oder?
- 8 und 9 werden ausgeführt, wenn andere Argumente (Dateien) übergeben werden.
- 8 Die FOR Schleife läuft über alle übergebenen Argumente (in %*) , ordnet sie nacheinander der Laufvariablen %%i zu, und entfernt bei der ECHO Ausgabe umschließende Anführungszeichen durch die Tilde in %%~i.
- 9 Der Batch ruft sich selbst erneut auf, mit dem Fragezeichen als Argument. Somit werden im 2. Durchlauf die Zeilen 4-6 ausgeführt.
Soweit die Theorie. Ob es funktioniert, musst du selbst testen.
Grüße
rubberman
LÖSUNG 03.10.2011 um 16:49 Uhr
Hallo rubberman,
-2 wenn man die Batch also blank startet somit nichts übergibt hat %1 den Wert _ und beendet sich daher.
-3 wenn das ? kommt welches eigentlich nur dann kommt weil es sich die Batch selbst übergibt dann gehts in Zeile 4 los
-8 wird ausgeführt sobald jemand ein Drag and Drop durchführt. Hier wird dann all das gemacht was meine Batch ja auch macht.
-9 die Batch übergibt sich selbst das ? womit wir wieder bei -3 wären.
Stellt sich nur noch die Frage warum
und nicht
Ich weiß du sagtest sinnlos aber irgend einen Grund musst du doch gehabt haben.
So sollte man dann auch mehr als 9 Dateien einlesen können oder?
Vielen Dank!
lg mc-dy
-2 wenn man die Batch also blank startet somit nichts übergibt hat %1 den Wert _ und beendet sich daher.
-3 wenn das ? kommt welches eigentlich nur dann kommt weil es sich die Batch selbst übergibt dann gehts in Zeile 4 los
-8 wird ausgeführt sobald jemand ein Drag and Drop durchführt. Hier wird dann all das gemacht was meine Batch ja auch macht.
-9 die Batch übergibt sich selbst das ? womit wir wieder bei -3 wären.
Stellt sich nur noch die Frage warum
if %1_==?_ (
if %1==? (
So sollte man dann auch mehr als 9 Dateien einlesen können oder?
Vielen Dank!
lg mc-dy
LÖSUNG 03.10.2011 um 17:01 Uhr
Hallo mc-doubleyou.
support.microsoft.com/kb/830473/de
Grüße
rubberman
-2 wenn man die Batch also blank startet somit nichts übergibt hat %1 den Wert _ und beendet sich daher.
-3 wenn das ? kommt welches eigentlich nur dann kommt weil es sich die Batch selbst übergibt dann gehts in Zeile 4 los
-8 wird ausgeführt sobald jemand ein Drag and Drop durchführt. Hier wird dann all das gemacht was meine Batch ja auch macht.
-9 die Batch übergibt sich selbst das ? womit wir wieder bei -3 wären.
Ja.-3 wenn das ? kommt welches eigentlich nur dann kommt weil es sich die Batch selbst übergibt dann gehts in Zeile 4 los
-8 wird ausgeführt sobald jemand ein Drag and Drop durchführt. Hier wird dann all das gemacht was meine Batch ja auch macht.
-9 die Batch übergibt sich selbst das ? womit wir wieder bei -3 wären.
Ich weiß du sagtest sinnlos aber irgend einen Grund musst du doch gehabt haben.
Nö, wirklich sinnlos. Schiebs mal darauf dass es schon spät (ähm früh) war.So sollte man dann auch mehr als 9 Dateien einlesen können oder?
Ja, aber nicht endlos viele. %* wird in der FOR Schleife expandiert und verlängert somit die Zeile, deren Maximallänge aber begrenzt ist. support.microsoft.com/kb/830473/de
Grüße
rubberman