(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
Please also mark the comments that contributed to the solution of the article
Content-Key: 110992
Url: https://administrator.de/contentid/110992
Printed on: October 1, 2023 at 09:10 o'clock
8 Comments
Latest comment
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"