pbelcl
Goto Top

Commandlineparameter in Variablen übergeben klappt nicht

Hallo Leute,

Ich habe vor ein CopyProgramm zu schreiben, an das ich vier Variablen übergebe!
Bei der Übergabe der Parameter habe ich Probleme die "" rauszufiltern!

In meinen Beispielen habe ich nur den QUell-Pfad reingenommen da es übersichtlicher wird!

Wird meine Batchdatei mit den zwei Parametern "C:" und "Dokumente und EInstellungen" aufgerufen, bekomme ich die Parameter so angezeigt:

echo %1 -> "c:"
echo %2 -> "Dokumente und EInstellungen"

Übergebe ich diese beiden Parameter in 2 Variablen dann klappt das:
set Q_LW=%1
set Q_V=%2

Die beiden Variablen enthalten dann die Werte MIT den Anführungszeichen!

Wenn ich die Anführungszeichen rausfiltere dann sieht das so aus:

echo %~1 -> c:
echo %~2 -> Dokumente und EInstellungen

Wenn ich allerdings die Variablen ohne Anführungszeichen übertragen möchte

set Q_LW=%~1
set Q_V=%~2


dann stürzt das Batch ohne Fehlermeldung ab!!

Kann mir jemand einen Tipp geben warum??

Content-Key: 132695

Url: https://administrator.de/contentid/132695

Printed on: April 19, 2024 at 15:04 o'clock

Member: bastla
bastla Jan 04, 2010 at 13:46:35 (UTC)
Goto Top
Hallo pbelcl!

Deine eigentliche Frage (nach dem "Warum") kann ich zwar nicht beantworten, aber versuch es einmal so:
set "Q_LW=%~1"
set "Q_V=%~2"
und verwende dann bei Bedarf die Schreibweise
copy "%Q_V%" ...
Grüße
bastla
Member: pbelcl
pbelcl Jan 05, 2010 at 17:38:43 (UTC)
Goto Top
Zitat von @bastla:
set "Q_LW=%~1"
> set "Q_V=%~2"
> 
Danke Bastla, das hat funktioniert!
Auf diesen Syntax wär ich NIE gekommen...

Jetzt hab ich noch versucht die Variablen auf Inhalt zu prüfen, aber mit

if %Q_V%!==!
klappt das nicht!
Ich will nur ein Event setzen wenn die Variable leer ist!

Hast Du da auch noch einen Tipp??
Member: bastla
bastla Jan 05, 2010 at 17:43:38 (UTC)
Goto Top
Hallo pbelcl!
Ich will nur ein Event setzen wenn die Variable leer ist!
Versuch es damit:
if not defined %Q_V% ...
Grüße
bastla
Member: pbelcl
pbelcl Jan 05, 2010 at 18:05:38 (UTC)
Goto Top
Zitat von @bastla:
Versuch es damit:
if not defined %Q_V% ...
> 
Das hat leider nicht funktioniert, vielleicht weil in den Variablen Leerzeichen drinnen sind??

Hab allerdings damit
if "X%Q_V%X"=="XX" goto Param_fehler
Erfolg gehabt. (hat mir eure Forensuche ausgespuckt...)
Ist allerdings nicht so elegant face-wink