schultno
Goto Top

... ist syntaktisch an dieser Stelle nicht verarbeitbar

Habe schon Beitrage zu meinem Problem gelesen, es funktioniert trotzdem bei mir nicht (XP)

In einer batch möchte ich die existenz eines Verzeichnisses, das leerzeichen enthält überprüfen.
@echo off
echo userprofile ist so %USERPROFILE%

set xxx=%USERPROFILE%\Anwendungsdaten\Alias

echo ist gesetzt auf %xxx%
echo stelle 1

if exit "%xxx%\" echo Ordner existiert

Als Ergebnis erhalte ich:

userprofile ist so C:\Dokumente und Einstellungen\schultno
ist gesetzt auf C:\Dokumente und Einstellungen\schultno\Anwendungsdaten\Alias
stelle 1
""C:\Dokumente und Einstellungen\schultno\Anwendungsdaten\Alias\"" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Content-Key: 106713

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

Printed on: April 26, 2024 at 02:04 o'clock

Mitglied: 60730
60730 Jan 21, 2009 at 13:57:57 (UTC)
Goto Top
Servus,

immer wieder gerne genommen...

set "xxx=%USERPROFILE%\Anwendungsdaten\Alias"
if exit "%xxx%\" echo Ordner existiert

  • Die "" bitte genau so benutzen
  • Mach aus exit exist face-wink
  • < code> und < /code> (ohne Leerzeichen) zwischen Cmd Schnippseln - erleichtern das lesen

Gruß
Member: schultno
schultno Jan 21, 2009 at 14:16:00 (UTC)
Goto Top
Danke Timo,

ich habe schon den ganzen Tag an dem Problem gebastelt und bin mit den Nerven am Ende.
Habe auf euren Seiten gefunden, dass die alte Variante mit if exist %ordner%\NUL nicht mehr funktioniert falls Leerzeichen im Pfad sind.

Als ich diese Erkenntnis im Code umsetzen wollte, ist mir doch glatt das s aus exist abhandengekommen.

PS: es geht auch ohne die empfohlene "" Umrandung (Biber-Variante) also:

set xxx=%USERPROFILE%\Anwendungsdaten\Alias
if exist "%xxx%\" echo Ordner existiert  

Wann/Warum soll ich set "var=wert" verwenden ?
Mitglied: 60730
60730 Jan 21, 2009 at 14:40:24 (UTC)
Goto Top
face-wink

...aber wenn du /ein anderer jetzt deinen CodeBlock kopiert oder wegen einem anderen Zufall - hinter dem s von Alias ein Leerzeichen stehen sollte - kommt der nächste mit dem gleichen Problem face-wink

kopiere mit der Maus mal deine Zeile 1 und du verstehst was ich meine

Daher schreib ich das auch immer so (versuche es zumindestens), das eine mögliche Fehlerquelle ausgeschlossen werden kann.

Gruß
und dank für das sofortige Umsetzen mit den Code Blöcken face-wink

Edit.

Wann/Warum soll ich set "var=wert" verwenden ?

Wenn du das script übersichtlicher haben willst oder wenn du einen Wert mehrmals brauchst.

Im Prinzip geht ja auch ein simples
if exist "%USERPROFILE%\Anwendungsdaten\Alias" echo Alias vorhanden  
bzw. Falls irgendwo ein Leerezeichen drin ist - ist eine Fehlerquelle garantiert weg und eine Fehlerquelle weniger ist immer sinnvoll.
Und dann schadet es auch nichts - von daher müßte die richtige Antwort auf deine Frage lauten:

"Aus Prinzip" face-wink

Ps: Deingesuchter Pfad ist übrigens nicht nur
"%USERPROFILE%\Anwendungsdaten\Alias"
- sondern auch kürzer und funktionierender auf englischen Systemen:
"%Appdata%\Alias"