Probleme mit Batch :)
d-.-b
- programmiertechnik
0 Tim Tepaße0 Ingo
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"
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"
Mit freundlichen Grüßen
d-.-b
__________________________________________________________
KANN MIR HIER JEMAND HELFEN ??? =P
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.
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