d-.-b: Probleme mit Batch :)

hallöle an alle erstmal :)

MEIN PROBLEM:
IN BATCH MOCHTE ICH EINEN DATEINAMEN (z.B. "test_datei.dat") IN EINE VARIABLE ÜBERGEBEN:

---cut--
:test.bat
MD %1"bla [ %2 ] bla"
:end
---cut--

::BEFEHL: test.bat IRGEND_EIN_PATH test_datei.dat

::ERGEBNIS:
-   1. ORDNER: "test"

  • UNTERORDNER: "bla [ test_datei.txt ] bla"

WENN DIE VARIABLE IN %2 NUN ABER EIN FREIZEICHEN ENTHÄLT, FUNZT DAS NICHT, DA JA z.B. "test datei.txt" == "test" & "datei.txt" SEIN WÜRDEN! ALSO:

::ERGEBNIS:
-   1. ORDNER: "test"

  • UNTERORDNER: "bla [ test ] bla"

Mit freundlichen Grüßen
d-.-b

__________________________________________________________

KANN MIR HIER JEMAND HELFEN ??? =P

  1. Hallo »d-.-b«,

    MEIN PROBLEM:

    Ich habe es mir zur Angewohnheit gemacht, Postings, die meinem
    ästhetischen Empfinden widersprechen, erst nach einer längeren
    Zeit zu beantworten. Eine Schreibweise komplett in Großbuchstaben
    stößt mir sehr sauer auf. In Deinem Fall habe ich erstmal einen
    Großteil des Forums abgegrast, ehe ich zu Deinem Posting
    zurückgekommen bin.

    Ich bin mir relativ sicher, daß es viele andere potentiell
    antwortende Kapazitäten im Internet ebenso halten. Würdest
    Du Dein Verhalten ändern, hättest Du sicherlich mehr Erfolg
    auf eine Antwort.

    IN BATCH MOCHTE ICH EINEN DATEINAMEN (z.B. "test_datei.dat") IN EINE
    VARIABLE ÜBERGEBEN:

    Also über einen Parameter.

    WENN DIE VARIABLE IN %2 NUN ABER EIN FREIZEICHEN ENTHÄLT, FUNZT DAS NICHT,

    Natürlich, da Parameter in allen mir bekannten CLIs meist durch Leerzeichen
    getrennt werden. Da gibt es zwei Möglichkeiten, das zu umgehen, zum einen
    durch Einkapselung, zum anderen durch Maskierung. Welche Variante die
    richtige ist, hängt dann vom CLI ab.

    Einkapselung kennst Du vielleicht, wenn Du in Mathe aufgepaßt hast oder
    bessere Suchstrategien beherrschst. Dabei wird der zu übergebende Term
    in zwei Zeichen eingefasst. In der Mathematik sind das Klammern, auf
    Computersystemen ist es oft das Zollzeichen (SHIFT-2), auch als
    Anführungszeichen bekannt. Das sieht ungefähr so aus:

    befehl "para meter"

    Als Maskierung bezeichnet man den Vorgang, wenn bestimmte durch irgendwelche
    Anwendungen schon belegte Zeichen durch andere Zeichen bzw. Zeichenfolgen
    ersetzt werden. Auf meinem Betriebssystem wird z.B. das Leerzeichen in
    Parametern durch diese Zeichenfolge ersetzt: "\ ". Maskierung wird Dir
    in der Computerwelt immer wieder begegnen.

    Ich bin mir relativ sicher, daß DOS Einkapselung benutzt, habe aber dank
    des Besitzes eines besseren Betriebsystemes gerade keine Möglichkeit es
    zu testen.

    • Tim
    --
    »Solche Kompetenzen kauft man sich zu.«
    http://forum.de.selfhtml.org/archiv/2003/5/46020/#m251248
  2. Hi,

    ich nehme an, daß du von einer batch unter ms-dos sprichst.
    hier solltest du die ms-dos eigenen datei- und verzeichnisnamen benutzen, die (auch bei win xp) immer noch nach dem 8.3 prinzip aufgebaut sind.
    aus 'test datei.txt' würde so z.b. 'TEST~1.TXT' (oder 'TEST~2.TXT'...) werden, aus 'Eigene Dateien' 'EIGENE~1.'.

    freundliche Grüße
    Ingo