In welcher Datei stehen die vorgemerkten Sendungen?

Bei Problemen mit der Bedienung von TV-Browser, bitte hier posten.
Gebby

Beitrag von Gebby »

Die Batch-Datei muss ja auch leer bleiben wenn du nichts drin zu stehen hattest :wink:
Du rufst die Batch ja nur auf, also quasi als Programm. Dieses muss dann die Regie übernehmen und die übergebenen Parameter per "echo %1 >>aufnehmen.bat" verarbeiten.

In deiner Batch-Datei müssen also schon Befehle drin stehen, die die Parameter annehmen und sie in den String...

Code: Alles auswählen

c:\windows\system32\schtasks.exe /create /SC EINMAL /TN %T2_%CNB_%SD%SMO%SY_%SH%SMI /TR "C:\Programme\WinTV\WinTV2K.EXE -c%CNU -ntod -nss -startr:%T2_%CNB_%SD%SMO%SY_%SH%SMI.mpg -qdef -limit:%LS -mute -exitr" /ST %SH:%SMI:00 /SD %SD/%SMO/%SY /ru %UN /rp %UP
...sinnvoll umsetzen.

Beispiel: Du rufst die Batch auf und übergibst den Parameter %SD, also den Starttag. In der Batch kannst du den Parameter mittels "echo Parameter 1: %1" auf dem Bildschirm ausgeben, oder du lenkst die Ausgabe per "echo %1 >>aufnehmen.bat" in eine Datei um. In der aufnehmen.bat steht dann z.B. drin "16.05.2005".
So verfährst du mit allen Parametern die du brauchst. Klartext wie "create\" etc. mußt du natürlich sinnvoll in Reihe setzen und übergeben.
twk1

Beitrag von twk1 »

Hi Leute,

ich bin schon ganz gut unterwegs, scheitere aber noch an folgendem:
Ich habe jetzt mal in tvbrowser/capture plugin/applikation eingetragen d:\tv.bat
die sieht aus wie folgt:
echo c:\winnt\system32\schtasks.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /ru Administrator /rp 12345 >>d:\tv.txt

wenn ich nun eine sendung markiere schaut die datei tv.txt aus wie folgt:
c:\winnt\system32\schtasks.exe /create /SC EINMAL /TN Tagesthemen_ARD_31052005_2220 /TR "C:\Programme\WinTV\WinTV2K.EXE -c103 -ntod -nss -startr:Tagesthemen_ARD_31052005_2220.mpg -qdef -limit:3480 -mute -exitr" /ST 22:20:00 /ru Administrator /rp 12345

das heisst:mir fehlt der parameter für das datum der sendung (der, der vor dem user und passwort steht) - den krieg ich irgendwie nicht (im parameter %5 steht das datum zwar drinnen, aber nur mit titel etc gemeinsam)

wenn ich sendungen für heute plane geht es, denn er nimmt defaultmässig den heutigen tag, aber für morgen und weiter brauche ich den parameter

wie stelle ich das an???
ich will nicht so kurz vor dem ziel scheitern ;-)

danke und lg, twk

ps: die tasks werden dann aus dieser datei sauber erstellt - schaut also gut aus!
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Jetzt wird's ein wenig tricky...Dos kann nur 9 Parameter auf einmal verwalten. Um an die nächsten 9 dran zu kommen mußt du einen Befehl benutzen. Leider weiß ich jetzt nicht genau, wie der hieß..bin ja kein Windows/Dos-Profi. Aber vielleicht hilft Google ja weiter.
Gebby

Beitrag von Gebby »

Ups, hier lief was schief.

Hast du also schon 9 Parameter verwendet, es wurden aber z.B. 10 übergeben, bringt dich ein einmaliges shift ohne Parameter an den 10. Parameter heran.
twk1

Beitrag von twk1 »

Hi Leute,

bin fast am Ziel:
habe jetzt in der bach datei:
shift
shift
echo c:\winnt\system32\schtasks.exe /create /sc %1 %2 %3 %4 %5 %6 %7 %8 %9 /ru Administrator /rp 12345 >>d:\tv.txt

das ergibt in der tv.txt:
c:\winnt\system32\schtasks.exe /create /sc EINMAL /TN F?r_alle_F„lle_Stefanie_Sat1_18052005_1050 /TR "C:\Programme\WinTV\WinTV2K.EXE -c105 -ntod -nss -startr:F?r_alle_F„lle_Stefanie_Sat1_18052005_1050.mpg -qdef -limit:5280 -mute -exitr" /ST 10:50:00 /SD 18/05/2005 /ru Administrator /rp 12345

letztes problem nun im tvbrowser:
wenn ich das so mache, kommt eine fehlermeldung des capture plugins - offensichtlich versteht es die shifts nicht!
"Fehler beim ausführen des kommandos"
java.lang.IllegalThreadStateException: process has not exited
at java.lang.ProcessImpl.exitValue(Native Method)
at captureplugin.drivers.defaultdriver.CaptureExecute.executeApplication(CaptureExecute.java:236)
at captureplugin.drivers.defaultdriver.CaptureExecute.execute(CaptureExecute.java:139)
at captureplugin.drivers.defaultdriver.CaptureExecute.addProgram(CaptureExecute.java:97)
at captureplugin.drivers.defaultdriver.DefaultDevice.add(DefaultDevice.java:195)
at captureplugin.DeviceSelector$1.actionPerformed(DeviceSelector.java:112)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


und es wird die sendung im tvbrowser nicht markiert.

wie löse ich das nun?

lg, twk
Benutzeravatar
fingerhut
Platin Member
Beiträge: 2923
Registriert: 03 Feb 2005, 10:18
Wohnort: Nürnberg

Beitrag von fingerhut »

das ist in dieser Verion des Capture Plugin noch ein Problem

ist eigendlich nur ein Time Out.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Aber dieser Time-Out sollte eigentlich garnicht passieren. Das Ausführen der Bat-Datei dauert doch nicht einige Sekunden, oder?
Gebby

Beitrag von Gebby »

twk1 hat geschrieben: bin fast am Ziel:
habe jetzt in der bach datei:
shift
shift
echo c:\winnt\system32\schtasks.exe /create /sc %1 %2 %3 %4 %5 %6 %7 %8 %9 /ru Administrator /rp 12345 >>d:\tv.txt
Bei Java kenn ich mich nicht aus. Aber, du verwendest shift gleich 2x am Anfang? Dann bekommst du rein theoretisch die Variablen %1 und %2 gar nicht übergeben, sondern die Variablen %3 bis %11. Wie sieht denn dein Aufruf über Captureplugin aus? Welche Parameter übergibst du mit diesem? Und wie sieht deine komplette Batch aus?
Benutzeravatar
fingerhut
Platin Member
Beiträge: 2923
Registriert: 03 Feb 2005, 10:18
Wohnort: Nürnberg

Beitrag von fingerhut »

hi

du kanst auch dieses skript verwenden


1 !! vorsicht user und password werden mit übergeben!!!
2 braucht des record.vbs skript von winTv
3 benützt in dieser fassung jt.exe (startet die aufnahmen auch aus dem Standby)
4 Parameter wie für winTV für win2k und XP

5 delete wird in die bat datei geschrieben

6 in v_path_txt (C:\progdvb\bat_file\aufnahmen) werden txt dateien mit der gleichen namen wie die Geplanten tasks erstellt und wieder gelöscht

7 -> kann die txt datei nicht gelöscht werden wird sie auch in den geplanten tasks von der batch datei nicht gelöscht!!!



8 ;-) daran denken auf was für ein system es laufen soll (c:\WINNT\system32\.. ) für win2k ;-)

update pfade im skipt die anzupassen sind

v_path_cscript // target computer
v_path_record // target computer
v_path_winTV // target computer
v_path_jt // target computer
v_path_bat // local computer
v_path_txt // local computer
v_bat_file // local computer



timer.vbs

Code: Alles auswählen




 'pfade anpassen !!!!
 
  v_path_cscript = "C:\Windows\System32\cscript.exe"
  v_path_record  = "G:\skripte\record.vbs" 
  v_path_winTV   = "D:\PROGRAMME\WinTV\WinTV2K.EXE"
  v_path_jt      = "C:\Windows\System32\jt.exe"
  v_path_bat     = "C:\progdvb\bat_file"
  v_path_txt     = "C:\progdvb\bat_file\aufnahmen"
  v_bat_file    =  "data.bat"


 'parameter anzahl ueberpruerfen ,uebernemen und anpassen

  Set ArgObj = WScript.Arguments
  v_counter = ArgObj.count
 
  IF  14 <> v_counter THEN
    Wscript.Echo  "Falsche Anzahl der Parameter"
    WScript.Quit(1)
  ELSE
 
        v_starthh = ArgObj(0)
       v_startmin = ArgObj(1)
       v_startday = ArgObj(2) 
     v_startmonth = ArgObj(3)
      v_startyear = ArgObj(4)
          v_endhh = ArgObj(5)
         v_endmin = ArgObj(6)
      v_channelnr = ArgObj(7)
       v_password = ArgObj(8)
           v_user = ArgObj(9)
       v_telecast = ArgObj(10)
        v_seconds = ArgObj(11)
        v_minutes = ArgObj(12)
    v_channelname = ArgObj(13) 
 

   
    IF 100 > v_minutes Then
      IF 10 > v_minutes Then
        v_minutes = "00" &  v_minutes
      ELSE
        v_minutes = "0" &  v_minutes
      END IF 
    END IF


 'namen fuer gelpante tasks (job objekt)
    
     
    v_taskname = """"& v_startmonth &","& v_startday &" "& v_starthh & v_startmin &"-"& v_endhh & v_endmin  &" "& v_minutes &" "& v_channelnr &" "& v_channelname &" "& v_telecast &".job"""
    v_taskname_txt  = ""& v_startmonth &","& v_startday &" "& v_starthh & v_startmin &"-"& v_endhh & v_endmin  &" "& v_minutes &" "& v_channelnr &" "& v_channelname &" "& v_telecast &".txt"
   'v_taskname kann nach Anleitung geändert werden
 

 'parameter fuer gelpante tasks

    v_user         = """"& v_user &""""
    v_password     = """"& v_password &""""
    v_startdate    = v_startmonth &":"& v_startday &":"& v_startyear
    v_starttime    = v_starthh &":"& v_startmin
  

 'parameter fuer cscript (record.vbs)

    v_parameter = """"& v_path_record &" "& v_path_winTV &" "&  v_channelnr &" "& v_telecast &" "& v_channelname &" "& v_seconds &""""
   
 'batch datei bearbeiten / erstellen
  
    set objShell = wscript.CreateObject("wscript.Shell")
    objShell.CurrentDirectory = v_path_bat
  

    Set objFSO = wscript.CreateObject("Scripting.FileSystemObject")
  
    If objFSO.FileExists(v_bat_file) Then
      Set objFile = objFSO.OpenTextFile(v_bat_file ,8 )
    Else
      Set objFile = objFSO.CreateTextFile(v_bat_file) 
    End If

 
    objFile.WriteLine v_path_jt &" /sj ApplicationName="& v_path_cscript &" SystemRequired=1 DeleteWhenDone=1  Comment=""Create by TV-Browser"" Parameters="& v_parameter &"/ctj StartTime="& v_starttime &" StartDate="& v_startdate &" type=ONCE Disabled=0 /SM "& v_machine &" /sc "& v_user &" "& v_password &" /saj "& v_taskname
    objFile.Close

 'txt datei erstellen
   
    objShell.CurrentDirectory = v_path_txt 
    Set objFile = objFSO.CreateTextFile(v_taskname_txt)
    objFile.Close
   
  END IF 
 

deltimer.vbs

Code: Alles auswählen

 'pfade anpassen !!!!
 
 
  v_path_jt      = "C:\Windows\System32\jt.exe"
  v_path_txt     = "C:\progdvb\bat_file\aufnahmen"
  v_path_bat     = "C:\progdvb\bat_file"
  v_bat_file     =  "data.bat"



 'parameter anzahl ueberpruerfen ,uebernemen und anpassen

  Set ArgObj = WScript.Arguments
  v_counter = ArgObj.count
 
  IF  11 <> v_counter THEN
    Wscript.Echo  "Falsche Anzahl der Parameter"
    WScript.Quit(1)
  ELSE
 
        v_starthh = ArgObj(0)
       v_startmin = ArgObj(1)
       v_startday = ArgObj(2) 
     v_startmonth = ArgObj(3)
      v_startyear = ArgObj(4)
          v_endhh = ArgObj(5)
         v_endmin = ArgObj(6)
      v_channelnr = ArgObj(7)
       v_telecast = ArgObj(8)
        v_minutes = ArgObj(9)
    v_channelname = ArgObj(10)
 

   
    IF 100 > v_minutes Then
      IF 10 > v_minutes Then
        v_minutes = "00" &  v_minutes
      ELSE
        v_minutes = "0" &  v_minutes
      END IF 
    END IF


 'namen fuer gelpante tasks (job objekt)
 
     v_taskname_txt  = ""& v_startmonth &","& v_startday &" "& v_starthh & v_startmin &"-"& v_endhh & v_endmin  &" "& v_minutes &" "& v_channelnr &" "& v_channelname &" "& v_telecast &".txt"
     v_taskname = """"& v_startmonth &","& v_startday &" "& v_starthh & v_startmin &"-"& v_endhh & v_endmin  &" "& v_minutes &" "& v_channelnr &" "& v_channelname &" "& v_telecast &".job"""
    'v_taskname kann nach Anleitung geändert werden


 'einen job objekt löschen (gelpante tasks) in die bat datei schreiben
 'batch datei bearbeiten / erstellen

    set objShell = wscript.CreateObject("wscript.Shell")
    objShell.CurrentDirectory = v_path_bat
  

    Set objFSO = wscript.CreateObject("Scripting.FileSystemObject")
  
    If objFSO.FileExists(v_bat_file) Then
      Set objFile = objFSO.OpenTextFile(v_bat_file ,8 )
    Else
      Set objFile = objFSO.CreateTextFile(v_bat_file) 
    End If   

    objFile.WriteLine  v_path_jt & " /sd "& v_taskname
    objFile.Close

 'txt datei löschen

    objShell.CurrentDirectory = v_path_txt 
    objFSO.DeleteFile(v_taskname_txt)
  
  
    
  END IF 
Zuletzt geändert von fingerhut am 18 Mai 2005, 02:17, insgesamt 4-mal geändert.
Benutzeravatar
fingerhut
Platin Member
Beiträge: 2923
Registriert: 03 Feb 2005, 10:18
Wohnort: Nürnberg

Beitrag von fingerhut »

bodo hat geschrieben:Aber dieser Time-Out sollte eigentlich garnicht passieren. Das Ausführen der Bat-Datei dauert doch nicht einige Sekunden, oder?
ist ein problem mit der IO funktion unter win braucht einfach zu lange.

und ein pipe (>>) ist reine IO ;-)
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

das is ja echt üble...ein >> dauert einige Sekunden!? Also soooo langsame IO hab ich noch nie gesehen :shock:
Benutzeravatar
fingerhut
Platin Member
Beiträge: 2923
Registriert: 03 Feb 2005, 10:18
Wohnort: Nürnberg

Beitrag von fingerhut »

bodo hat geschrieben:das is ja echt üble...ein >> dauert einige Sekunden!? Also soooo langsame IO hab ich noch nie gesehen :shock:
ein >> nicht aber soviel ich weis benützt die doseingabe für alle anweisungen
nur den IO und alles zusammen wird langsam.

ich hatte schon ein time out im Capture plugin als ich die rückgabe werte von jt.exe nicht untersucht habe sondern dem capture plugin wieder übergeben habe (ca 5 zeilen) . -> ein sting zu untersuchen geht schneller als in zu übergeben.
twk1

Beitrag von twk1 »

Hi Leute,

ich hab das jetzt nochmals getestet und bin nicht der Meinung, dass es ein Timeout Problem ist.
Weil: Sobald ich die beiden "Shifts" rausnehme, geht es. und die batchdatei besteht dann nur aus der zeile mit den pipes (echo ...... >> D:\Tv.txt). Und es dauert dann auch nur eine Sekunde oder so.
Sobald ich ein oder zwei shifts reinstelle, dauert es viel länger und dann kommt der fehler.
irgendeine idee wie ich die variablen ausserhald dieser batchdatei "shiften" kann??

lg, twk
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

hast du die vbs-dateien von fingerhut weiter oben schon probiert? vbs hat den vorteil das es nicht shiften muß...
twk1

Beitrag von twk1 »

Hi,

nein - die vbs habe ich nicht probiert, weil fingerhut bezieht sich auf ein record.vbs von wintv, welches man braucht - ich hab das aber nicht :-(

ausserdem - wenn möglich - würde ich die simplere batch-variante bevorzugen

lg, twk
Antworten