Eventuelles Hochkomma am Anfang und Ende entfernen
Hallo Zusammen
Ich übergebe an eine Batchdatei 2 Pfade wenn der zweite Parameter eine leerzeichen enthält muß der ja mit " " eingeschlossen sein . Damit deie Batchdatei nicht 3 Parameter erkennt.
Jetzt haben ich zwei if abfragen geschrieben wenn am Anfang ein " dann entferne es und wenn an ende ein " dann entferne es..
Das funktioniert soweit auch wenn der Übergeben 2 Wert "C:\Programme\Hot up" lautet. habe ich nachher im Programm den Wert C:\Programme\Hot up mit dem ich dann weiterarbeite kann,
Wenn ich aber den 2 Wert mit C:\Programme\Hot-down übergebe also ohne " bekomme ich eine
Syntaxfehler IF "C"==""" (
Wenn ich für die If abfrage
mit mache also
nutze wird zum Schluß der Wert von CO_HOME nicht übernommen und die "" sind noch da.
Wenn ich die
Die Abfrage
in eine Zeile schreibe
Luft das Progrmamm gar nicht an.
Also im Moment bin ich sehr verwirrt.
Dabei will ich doch nur wenn die Abfragen wenn 2 Paramete z.b. "C:\Program Files\Hallo-du" ist dann mach daraus C:\Program Files\Hallo-du
Wenn der Zweite Paramert ohne "" ist also z.B. C:\Programme\Hallo-du dann lass ihn so. Und mach weiter.
Das Programm funktioniert wenn ich einfach das erste und das letzt Zeichen weg lasse.
Aber da ich nicht mit sicherheut sagen kann das der Aufruf immer mit "" geschieht wollte ich diuese abfragen machen an der ich gerade verzweifle.
Besten dank schon mal im voraus
mycroft
Ich übergebe an eine Batchdatei 2 Pfade wenn der zweite Parameter eine leerzeichen enthält muß der ja mit " " eingeschlossen sein . Damit deie Batchdatei nicht 3 Parameter erkennt.
Jetzt haben ich zwei if abfragen geschrieben wenn am Anfang ein " dann entferne es und wenn an ende ein " dann entferne es..
set "CO_HOME=%2"
echo CO_HOME=#%CO_HOME%#
set "_CO_HOME="
set "_CO_HOME=%CO_HOME:~1%"
echo _CO_HOME=#%_CO_HOME%#
IF "%CO_HOME:~0,1%"==""" (
set "CO_HOME=%_CO_HOME%"
)
echo CO_HOME=#%CO_HOME%#
set "_CO_HOME="
set "_CO_HOME=%CO_HOME:~0,-1%"
echo _CO_HOME=#%_CO_HOME%#
IF "%CO_HOME:~-1,1%"==""" (
set "CO_HOME=%_CO_HOME%"
)
echo CO_HOME=#%CO_HOME%#
Das funktioniert soweit auch wenn der Übergeben 2 Wert "C:\Programme\Hot up" lautet. habe ich nachher im Programm den Wert C:\Programme\Hot up mit dem ich dann weiterarbeite kann,
Wenn ich aber den 2 Wert mit C:\Programme\Hot-down übergebe also ohne " bekomme ich eine
Syntaxfehler IF "C"==""" (
Wenn ich für die If abfrage
"%CO_HOME:~0,1%"=="""
mit mache also
[%CO_HOME:~-0,1%] == ["]
nutze wird zum Schluß der Wert von CO_HOME nicht übernommen und die "" sind noch da.
Wenn ich die
Die Abfrage
IF "%CO_HOME:~-1,1%"==""" (
set "CO_HOME=%_CO_HOME%"
)
in eine Zeile schreibe
IF "%CO_HOME:~-1,1%"==""" ( set "CO_HOME=%_CO_HOME%" )
Luft das Progrmamm gar nicht an.
Also im Moment bin ich sehr verwirrt.
Dabei will ich doch nur wenn die Abfragen wenn 2 Paramete z.b. "C:\Program Files\Hallo-du" ist dann mach daraus C:\Program Files\Hallo-du
Wenn der Zweite Paramert ohne "" ist also z.B. C:\Programme\Hallo-du dann lass ihn so. Und mach weiter.
Das Programm funktioniert wenn ich einfach das erste und das letzt Zeichen weg lasse.
Aber da ich nicht mit sicherheut sagen kann das der Aufruf immer mit "" geschieht wollte ich diuese abfragen machen an der ich gerade verzweifle.
Besten dank schon mal im voraus
mycroft
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148019
Url: https://administrator.de/contentid/148019
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
machs doch so:
Demo:
Gruß
machs doch so:
for /D %%a in (%1,%2) do echo %%~a
Demo:
c:\script\hochkomma.cmd "zzzz" "hhh"
for / %a in ("zzzz" "hhh") do echo %~a
echo zzzz
echo hhh
for / %a in ("zzzz" "hhh") do echo %~a
echo zzzz
echo hhh
Gruß