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, 23148 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 ..
Ähnliche Inhalte
Monitoring
OpenITCockpit auf deutsch stellen (2)

Frage von M.Marz zum Thema Monitoring ...

Server-Hardware
gelöst Server senkrecht stellen? (10)

Frage von stolli zum Thema Server-Hardware ...

Windows Netzwerk
gelöst PDF nur zum lesen zur Verfügung stellen (15)

Frage von Sylvia zum Thema Windows Netzwerk ...

Webbrowser
Webseite am Server zu extern zu Verfügung stellen - wie ftp? (10)

Frage von grillinator95 zum Thema Webbrowser ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Rechtliche Fragen
gelöst Geschäftsführer Email gefaked (18)

Frage von xbast1x zum Thema Rechtliche Fragen ...

Vmware
gelöst Update auf ESXI 6.5 Installieren (15)

Frage von zeroblue2005 zum Thema Vmware ...

Festplatten, SSD, Raid
gelöst Welche Software für Bandlaufwerk (14)

Frage von djonas zum Thema Festplatten, SSD, Raid ...

iOS
IPhone wird ferngesteuert Hacker? (14)

Frage von Akcent zum Thema iOS ...