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, 22068 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
Heiß diskutierte Inhalte
Google Android
gelöst Android-Handy versehentlich (dauerhaft) gesperrt? (19)

Frage von FA-jka zum Thema Google Android ...

Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

DSL, VDSL
gelöst DSL 200m verlängern (11)

Frage von Angela44 zum Thema DSL, VDSL ...