+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Fast Newbie Wolkenkind wird schon bald berühmt werden Avatar von Wolkenkind
    Registriert seit
    29.08.2003
    Alter
    35
    Beiträge
    36
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    68

    Unhappy 8.3 Dateinamen übergeben

    Habe mir eine kleine Batchdatei geschrieben, um auf der Platte vorhandene DVD-Videodaten, also vob & co, per Kontextmenü auf DVD zu bringen.
    das ganze funktioniert soweit ganz gut, solange der Pfad in denen die Daten stehen keine Leer- und Sonderzeichen enthalten, die das doppelte Anführungszeichen (") benötigen.

    In der Registry sind die Einträge

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\shell\DVDVideo]
    @="DVD-Video brennen"

    [HKEY_CLASSES_ROOT\Directory\shell\DVDVideo\command]
    @="cmd.exe /k \"dvdvideo.cmd %L\""

    gemacht um per Kontextmenü die Batch aufzurufen.
    Leider übergibt der Parameter %L den Pfad in langer Schreibweise.

    Gibt es nicht eine Möglichkeit, das der Pfad in 8.3 Schreibweise an die Batch übergeben wird ?


    Programmieren ist wie Sex. Ein kleiner Fehler und du musst für den Rest deines Lebens Support leisten...

  2. #2
    Power Poster q3wert wird schon bald berühmt werden Avatar von q3wert
    Registriert seit
    15.08.2000
    Ort
    Hamburg
    Alter
    42
    Beiträge
    5.921
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    680

    Standard

    probier mal
    @="cmd.exe /k \"dvdvideo.cmd %~s1\""

    besser wäre (wenns funktioniert):
    @="cmd.exe /k dvdvideo.cmd \"%L\""


    Trau niemandem. Schon gar nicht Sigi

  3. #3
    Fast Newbie Wolkenkind wird schon bald berühmt werden Avatar von Wolkenkind
    Registriert seit
    29.08.2003
    Alter
    35
    Beiträge
    36
    Downloads
    0
    Uploads
    0
    Themenstarter
    Renommee-Modifikator
    68

    Standard

    Funktioniert leider beides nicht.

    Auch @="cmd.exe /k \"dvdvideo.cmd "%L"\""
    und @="cmd.exe /k \"dvdvideo.cmd '%L'\""
    funktionieren nicht.


    Programmieren ist wie Sex. Ein kleiner Fehler und du musst für den Rest deines Lebens Support leisten...

  4. #4
    Power Poster q3wert wird schon bald berühmt werden Avatar von q3wert
    Registriert seit
    15.08.2000
    Ort
    Hamburg
    Alter
    42
    Beiträge
    5.921
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    680

    Standard

    dann liegts an deiner batch-datei. daran dachte ich leider nicht gleich.

    anstatt in der batch den parameter mit %1 aufzufangen, versuch mal %~s1


    Trau niemandem. Schon gar nicht Sigi

  5. #5
    Fast Newbie Wolkenkind wird schon bald berühmt werden Avatar von Wolkenkind
    Registriert seit
    29.08.2003
    Alter
    35
    Beiträge
    36
    Downloads
    0
    Uploads
    0
    Themenstarter
    Renommee-Modifikator
    68

    Standard

    Das eigendliche Problem ist, das die Batch den Pfad, welcher ja als Parameter übergeben wird nicht als einen einzigen Parameter, sondern als mehrere sieht, wenn Leerzeichen enthalten sind.

    Die Umwandlung eines vollständig erhaltenen Pfades mit %~s1 ist ne gute Idee gewesen (kannte ich auch noch nicht), aber der erste Parameter enthält halt nicht den ganzen Pfad.

    Das zeigt ja schon die Zeile

    Code:
    echo Uebergebenes Verzeichnis ist : %1
    Wenn ich dann ein Verzeichnis aus den Eigenen Dateien benutze, lautet die Ausgabe:

    Uebergebenes Verzeichnis ist : C:\Dokumente

    und der Rest fehlt ja schon.


    Programmieren ist wie Sex. Ein kleiner Fehler und du musst für den Rest deines Lebens Support leisten...

  6. #6
    Power Poster q3wert wird schon bald berühmt werden Avatar von q3wert
    Registriert seit
    15.08.2000
    Ort
    Hamburg
    Alter
    42
    Beiträge
    5.921
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    680

    Standard

    (edit: blabla gekürzt)

    du hast nicht explizit geschrieben, dass du
    @="cmd.exe /k dvdvideo.cmd \"%L\""
    probiert hast.
    mit einem aufruf von
    cmd.exe /k dvdvideo.cmd "X:\der scheiss ordner mit spaces"
    muss es ja schliesslich funktionieren...


    Geändert von q3wert (12.09.2004 um 17:11 Uhr)
    Trau niemandem. Schon gar nicht Sigi

  7. #7
    Fast Newbie Wolkenkind wird schon bald berühmt werden Avatar von Wolkenkind
    Registriert seit
    29.08.2003
    Alter
    35
    Beiträge
    36
    Downloads
    0
    Uploads
    0
    Themenstarter
    Renommee-Modifikator
    68

    Standard

    @="cmd.exe /k dvdvideo.cmd \"%L\"" meldet einen Sysntaxfehler.

    Rufe ich die Batch von der Shell per Hand auf mit
    dvdvideo.cmd "X:\der scheiss ordner mit spaces"
    oder
    cmd /k dvdvideo.cmd "X:\der scheiss ordner mit spaces"
    dann funktioniert es.


    Programmieren ist wie Sex. Ein kleiner Fehler und du musst für den Rest deines Lebens Support leisten...

  8. #8
    Power Poster q3wert wird schon bald berühmt werden Avatar von q3wert
    Registriert seit
    15.08.2000
    Ort
    Hamburg
    Alter
    42
    Beiträge
    5.921
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    680

    Standard

    achso, ok.

    jetzt probier ichs doch mal selber und melde mich...


    Trau niemandem. Schon gar nicht Sigi

  9. #9
    Fast Newbie Wolkenkind wird schon bald berühmt werden Avatar von Wolkenkind
    Registriert seit
    29.08.2003
    Alter
    35
    Beiträge
    36
    Downloads
    0
    Uploads
    0
    Themenstarter
    Renommee-Modifikator
    68

    Standard

    Schön, das es Leute gibt, die sich auch mal für andere bemühen. Das Script habe ich ja auch nur als Erleichterung für nen Freund geschrieben.
    Danke schonmal.


    Programmieren ist wie Sex. Ein kleiner Fehler und du musst für den Rest deines Lebens Support leisten...

  10. #10
    Power Poster q3wert wird schon bald berühmt werden Avatar von q3wert
    Registriert seit
    15.08.2000
    Ort
    Hamburg
    Alter
    42
    Beiträge
    5.921
    Downloads
    0
    Uploads
    0
    Renommee-Modifikator
    680

    Standard

    @="cmd.exe /k call \"C:\\!my testbatch\\the testbatch.cmd\" \"%L\""

    edit:
    und dabei habe ich gesehen, dass bei mir unter w2k %1 bereits den kurznamen übergibt, während %L den langnamen ohne quotes bringt.

    frage: was gibts noch, neben %1 und %L???


    Geändert von q3wert (12.09.2004 um 17:59 Uhr)
    Trau niemandem. Schon gar nicht Sigi

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. URL an Internet Explorer übergeben
    Von krsovi im Forum Software Windows XP
    Antworten: 9
    Letzter Beitrag: 30.05.2005, 09:39
  2. Gruppen übergeben
    Von Ruy im Forum Allgemein Windows XP
    Antworten: 0
    Letzter Beitrag: 09.11.2004, 09:53
  3. Access97 Parameter übergeben
    Von thmwg im Forum MS Office
    Antworten: 4
    Letzter Beitrag: 08.07.2003, 14:07
  4. Variable übergeben
    Von challanger im Forum MS Office
    Antworten: 3
    Letzter Beitrag: 25.09.2002, 06:26

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Search Engine Friendly URLs by vBSEO 3.6.0