dedalus2011
Goto Top

IF Bedingung, Skript wird abgebrochen

Hallo,

ich habe folgendes Problem:

in einem größeren Skript habe ich folgendes Code snippet:

<code/>
set "P1="
if [%P1%] neq (echo rrr >>%P1%) else (echo FALSE)


Wenn die Variable leer ist, der Skript bricht einfach ab auch wenn die Bedingung falsch ist. Gibt es da eine einfache Art das Problem zu lösen?

Vielen Dank für Eure Tipps.

Gruß
dedalus2011

Content-Key: 203064

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

Printed on: April 23, 2024 at 05:04 o'clock

Member: bastla
bastla Mar 09, 2013 at 21:44:10 (UTC)
Goto Top
Hallo dedalus2011!

Schreib einfach
if [%P1%] neq  (>>%P1% echo rrr) else (echo FALSE)
obwohl ich auf eine "leere" Variable %P1% eher so prüfen würde:
if defined P1 (>>"%P1%" echo rrr) else (echo FALSE)
Grüße
bastla
Member: dedalus2011
dedalus2011 Mar 09, 2013 updated at 22:03:34 (UTC)
Goto Top
Mit

<code/>
if defined P1 (>>"%P1%" echo rrr) else (echo FALSE)


habe ich es eben probiert, ich bräuchte aber ein

<code/>
if defined P1 (>>"%P1%" echo.%line%) else (echo FALSE)


um ein "ECHO IS OFF" zu unterdrücken. Dann bricht aber mein Skript ab mit ") unexpected at this time".

Gruß
dedalus2011
Member: bastla
bastla Mar 09, 2013 at 22:11:39 (UTC)
Goto Top
Hallo dedalus!

Dann eben wieder
if defined P1 (echo.%line%>>"%P1%") else (echo FALSE)
Grüße
bastla
Member: dedalus2011
dedalus2011 Mar 09, 2013 updated at 22:56:52 (UTC)
Goto Top
Super, danke. P1 ist in meinem Skript leider eine Pfadvariable mit Leerzeichen drin.

<code/>
set "P1="
set P2="C:\a b\text.txt"

if defined P1 (echo.%line% >>"%P1%") else (echo FALSE)

if defined P2 (echo.%line% >>"%P2%") else (echo FALSE)


Ohne die Anführungszeichen bricht der Skript ab, mit Anführungszeichen wird der Dateipfad nicht mehr gefunden (wegen doppelten Anführungszeichen).
Lassen sich Pfadvariablen mit Leerzeichen drin auch anders formulieren?

Gruß
dedalus2011
Member: bastla
bastla Mar 09, 2013 updated at 23:01:18 (UTC)
Goto Top
Hallo dedalus2011!

Du kannst doch anstatt
set  P2="C:\a b\text.txt"
auch
set  "P2=C:\a b\text.txt"
verwenden (musst dann aber in weiterer Folge eben immer %P2% unter Anführungszeichen setzen).

Grüße
bastla