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, 21807 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
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...