(DOS-Batch) Ein kaufmännisches Und-Zeichen in den Übergabeparametern
Hallo allerseits,
ich bekomme von einem Programm zwei Dateinamen, getrennt durch *, geliefert.
Ein Weiterverabeitung soll durch eine DOS-Batch-Datei erfolgen.
Wenn nun in den Dateinamen ein "&" drin ist, geht die Parameterübergabe an die Batchdatei schief.
Beispiel: Tu_was.bat Erste_Datei.txt*Zweite&letzte_Datei.txt
In der Batchdatei sollen die Parameter mit %1 und %2 aufgelöst werden. Doch der zweite Parameter wird vor dem "&" abgeschnitten und verstümmelt.
Ich kann die Übergabeparameter nicht in Hochkommatas stellen, was normalerweise helfen würde. Darauf habe ich keinen Einfluss.
Die Auflösung von %* bringt auch nur "Erste_Datei.txt*Zweite".
Habt Ihr eine Idee ob man da was machen kann?
Gruss,
Destry
ich bekomme von einem Programm zwei Dateinamen, getrennt durch *, geliefert.
Ein Weiterverabeitung soll durch eine DOS-Batch-Datei erfolgen.
Wenn nun in den Dateinamen ein "&" drin ist, geht die Parameterübergabe an die Batchdatei schief.
Beispiel: Tu_was.bat Erste_Datei.txt*Zweite&letzte_Datei.txt
In der Batchdatei sollen die Parameter mit %1 und %2 aufgelöst werden. Doch der zweite Parameter wird vor dem "&" abgeschnitten und verstümmelt.
Ich kann die Übergabeparameter nicht in Hochkommatas stellen, was normalerweise helfen würde. Darauf habe ich keinen Einfluss.
Die Auflösung von %* bringt auch nur "Erste_Datei.txt*Zweite".
Habt Ihr eine Idee ob man da was machen kann?
Gruss,
Destry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 110992
Url: https://administrator.de/contentid/110992
Ausgedruckt am: 26.11.2024 um 05:11 Uhr
8 Kommentare
Neuester Kommentar
Wenn du keinen Einfluss auf diese Ausgabe (in Hochkomma) hast kansn tdu dann wenigstens diese Ausgabe in eine Datei umleiten?
Diese datei könntest du dann in der Batch wieder einlesen und anschließend löchen lassen. So würde sie nur temponär existieren und das & wäre kein Problem.
Das ist das einzige was mir so spontan dazu einfällt jetzt.
Diese datei könntest du dann in der Batch wieder einlesen und anschließend löchen lassen. So würde sie nur temponär existieren und das & wäre kein Problem.
Das ist das einzige was mir so spontan dazu einfällt jetzt.
Na du weist ja wie die erste Datei heißt (Erste_Datei.txt) und du kennst den anfang der zweiten datei. Die könntest du ja dann vielleicht so ermitteln:
FOR /F "tokens=1,2 delims=*" %%i in (echo %~1) do "set erste=%%i" & set "zweite=%%j"
FOR /F "delims=" %%i in ('dir /x /b %zweite%*.txt"') do set "zweite=%%i"
Ist halt nur ne ungetestete idee...FOR /F "delims=" %%i in ('dir /x /b %zweite%*.txt"') do set "zweite=%%i"