Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

... ist syntaktisch an dieser Stelle nicht verarbeitbar

Frage Entwicklung Batch & Shell

Mitglied: schultno

schultno (Level 1) - Jetzt verbinden

21.01.2009, aktualisiert 14:49 Uhr, 22294 Aufrufe, 3 Kommentare

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.
Mitglied: 60730
21.01.2009 um 14:57 Uhr
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
  • < code> und < /code> (ohne Leerzeichen) zwischen Cmd Schnippseln - erleichtern das lesen

Gruß
Bitte warten ..
Mitglied: schultno
21.01.2009 um 15:16 Uhr
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:

01.
set xxx=%USERPROFILE%\Anwendungsdaten\Alias 
02.
if exist "%xxx%\" echo Ordner existiert
Wann/Warum soll ich set "var=wert" verwenden ?
Bitte warten ..
Mitglied: 60730
21.01.2009 um 15:40 Uhr


...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

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

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
01.
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"

Ps: Deingesuchter Pfad ist übrigens nicht nur
"%USERPROFILE%\Anwendungsdaten\Alias"
- sondern auch kürzer und funktionierender auf englischen Systemen:
"%Appdata%\Alias"
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (21)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...