mc-doubleyou
Goto Top

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
@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"  

play varmedia.bat
@echo off

vlc.exe varmedia.m3u vlc://quit
shutdown -s -t 60

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

Content-Key: 174048

Url: https://administrator.de/contentid/174048

Printed on: April 19, 2024 at 14:04 o'clock

Mitglied: 60730
60730 Oct 02, 2011 at 22:13:46 (UTC)
Goto Top
moin mcdoubledutch,

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?
Member: rubberman
rubberman Oct 02, 2011 at 23:10:50 (UTC)
Goto Top
Hallo mc-doubleyou.

Dein erster Batch ließe sich wohl auf 2 Zeilen zusammenschrumpfen.
>"varmedia.m3u" (for %%i in (%*) do echo %%~i)  
start "Start myVLC" /MIN "play varmedia.bat"  

Grüße
rubberman
Mitglied: 60730
60730 Oct 02, 2011 at 23:34:06 (UTC)
Goto Top
moin rubberman,

zum Thema eindampfen...
lieber zwei @ mehr sollte unnütze Zeilen sparen
und alles in einer Batch


>"varmedia.m3u" (@for %%i in (%*) do @echo %%~i)  
start "Start myVLC" /MIN /wait vlc.exe varmedia.m3u vlc://quit  
shutdown -s -t 60


Gruß
Member: rubberman
rubberman Oct 03, 2011 at 00:29:30 (UTC)
Goto Top
Hallo T-Mo,

lieber zwei @ mehr
Das macht kaum einen Unterschied. Zum Aufhybschen muss dann doch das von dir verhasste @echo off herhalten face-wink

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" ?  

Grüße
rubberman
Member: mc-doubleyou
mc-doubleyou Oct 03, 2011 at 13:59:20 (UTC)
Goto Top
Zitat von @rubberman:
...
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_==?_ (

Wenn ich nur wüsste was das heißt, obwohl ich relativ viel bätche in letzter Zeit verstehe ich da genau 0

>"varmedia.m3u" (for %%i in (%*) do echo %%~i)  
start "Start myVLC" /MIN cmd /c "%~f0" ?  

Warum genau wird das nun unten ausgeführt ohne varmedia.m3u geht doch gar nichts.
Achja und das Fragezeichen am Schluss sorgt für genau selbige bei mir.

Vielen Dank!

lg mc-dy
Member: rubberman
rubberman Oct 03, 2011 at 14:22:53 (UTC)
Goto Top
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
Member: mc-doubleyou
mc-doubleyou Oct 03, 2011 at 14:49:40 (UTC)
Goto Top
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

if %1_==?_ (

und nicht

if %1==? (

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
Member: rubberman
rubberman Oct 03, 2011 at 15:01:52 (UTC)
Goto Top
Hallo mc-doubleyou.

-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.

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