Richtige Syntax wird gesucht. Pfade gesetzt in Anführungszeichen, mit konvertiertem ö-Umlaut als Sonderzeichen und Leerzeichen, werden nicht akzeptiert!
Grüße Biber, Bastla, TimoBeil und die ganze Gemeinde,
ich habe ein echtes Problemchen. Ich schaffe nicht in der Batch-Datei die richtige Syntax so eines Pfades zu setzen, in welchem Sonderzeichen/Umlauten und Leerzeichen vorhanden sind.
Der eigentliche Pfad lautet: E:\Backup System & persönliche Einstellungen
Nun versuche ich ein Programm per Batch, das sich genau in diesem Verzeichnis befindet (das Programm muss sich nur hier, neben den speziellen Dateien, befinden) zu starten.
Wegen der Sonderzeichen habe ich den gesamten Pfad
"E:\Backup System & persönliche Einstellungen\2. MeinProgramm.exe"
in WordPad kopiert und als Textdokument MS-DOS-Format abgespeichert. So wurden alle Sonderzeichen in das richtige Zeichenformat, das sich für Batch eignet, konvertiert. Daraus ist Folgendes entstanden:
"E:\Backup System & pers”nliche Einstellungen\2. MeinProgramm.exe"
Nun habe ich den notwendigen Befehl zum Starten, wie folgt, da vorne gesetzt, aber die gesamte Syntax funktioniert es so leider nicht. Der kleine Umlaut „ö“ wurde zwar in das richtige Zeichen konvertiert udn wird richtig interpretiert, aber es ist ungünstigerweise ein Anführungszeichen mitten in dem Pfad geworden und wird von Batch richtig als „ö“ aber leider auch als Anführungszeichen behandelt. Anbei ist die ganze Zeile so, wie sie in der Batch-Datei steht:
start "MeinFensterText" /B "E:\Backup System & pers”nliche Einstellungen\2. MeinProgramm.exe"
Laut den Regeln soll ein Pfad mit Leerzeichen an den beiden seinen Enden ja jeweils in Anführungszeichen gesetzt werden. Wie soll aber die Syntax lauten, wenn in diesem Pfad mittendrin, wegen dem konvertierten ö-Umlaut, zwangsweise noch ein Anführungszeichen ist? Momentan ist es so, dass wegen so einer falschen Syntax zwei Fehlermeldungen nach dem Ausführen der Bach-Datei erscheinen:
„Der Befehl "E:\Backup“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.“
„Der Befehl "persönliche“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.“
D. h. der Pfad wird definitiv nicht als Pfad behandelt, sondern in separate Befehle aufgesplittert.
Ich habe viel gesucht und bereist vieles probiert aber leider ohne Erfolg und bin am Ende meiner Möglichkeiten. Daher die Frage an euch Spezialisten:
Wie soll die richtige Syntax lauten?
Vielen herzlichen Dank euch im Voraus
ich habe ein echtes Problemchen. Ich schaffe nicht in der Batch-Datei die richtige Syntax so eines Pfades zu setzen, in welchem Sonderzeichen/Umlauten und Leerzeichen vorhanden sind.
Der eigentliche Pfad lautet: E:\Backup System & persönliche Einstellungen
Nun versuche ich ein Programm per Batch, das sich genau in diesem Verzeichnis befindet (das Programm muss sich nur hier, neben den speziellen Dateien, befinden) zu starten.
Wegen der Sonderzeichen habe ich den gesamten Pfad
"E:\Backup System & persönliche Einstellungen\2. MeinProgramm.exe"
in WordPad kopiert und als Textdokument MS-DOS-Format abgespeichert. So wurden alle Sonderzeichen in das richtige Zeichenformat, das sich für Batch eignet, konvertiert. Daraus ist Folgendes entstanden:
"E:\Backup System & pers”nliche Einstellungen\2. MeinProgramm.exe"
Nun habe ich den notwendigen Befehl zum Starten, wie folgt, da vorne gesetzt, aber die gesamte Syntax funktioniert es so leider nicht. Der kleine Umlaut „ö“ wurde zwar in das richtige Zeichen konvertiert udn wird richtig interpretiert, aber es ist ungünstigerweise ein Anführungszeichen mitten in dem Pfad geworden und wird von Batch richtig als „ö“ aber leider auch als Anführungszeichen behandelt. Anbei ist die ganze Zeile so, wie sie in der Batch-Datei steht:
start "MeinFensterText" /B "E:\Backup System & pers”nliche Einstellungen\2. MeinProgramm.exe"
Laut den Regeln soll ein Pfad mit Leerzeichen an den beiden seinen Enden ja jeweils in Anführungszeichen gesetzt werden. Wie soll aber die Syntax lauten, wenn in diesem Pfad mittendrin, wegen dem konvertierten ö-Umlaut, zwangsweise noch ein Anführungszeichen ist? Momentan ist es so, dass wegen so einer falschen Syntax zwei Fehlermeldungen nach dem Ausführen der Bach-Datei erscheinen:
„Der Befehl "E:\Backup“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.“
„Der Befehl "persönliche“ ist entweder falsch geschrieben oder konnte nicht gefunden werden.“
D. h. der Pfad wird definitiv nicht als Pfad behandelt, sondern in separate Befehle aufgesplittert.
Ich habe viel gesucht und bereist vieles probiert aber leider ohne Erfolg und bin am Ende meiner Möglichkeiten. Daher die Frage an euch Spezialisten:
Wie soll die richtige Syntax lauten?
Vielen herzlichen Dank euch im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156339
Url: https://administrator.de/forum/richtige-syntax-wird-gesucht-pfade-gesetzt-in-anfuehrungszeichen-mit-konvertiertem-oe-umlaut-als-156339.html
Ausgedruckt am: 05.04.2025 um 05:04 Uhr
18 Kommentare
Neuester Kommentar
Aloha,
hast du denn schonmal die batch-Datei im DOS bearbeitet? (cmd -> edit) und dort die Sonderzeichen nochmal eingetippt, so handhabe ich das generell und habe bisher mit keinen Sonderzeichen à la ä, ö, ü etc. Probleme bekommen auch wenn sie weiterhin in logs etc. nicht dargestellt werden (bzw. als Anführungszeichen etc.).
greetz André
hast du denn schonmal die batch-Datei im DOS bearbeitet? (cmd -> edit) und dort die Sonderzeichen nochmal eingetippt, so handhabe ich das generell und habe bisher mit keinen Sonderzeichen à la ä, ö, ü etc. Probleme bekommen auch wenn sie weiterhin in logs etc. nicht dargestellt werden (bzw. als Anführungszeichen etc.).
greetz André
Hallo evinben!
Zusätzlich zu der von Skyemugen angeführten Möglichkeit per "
den Pfad in die Batchdatei bekommen.
Etwas weniger sicher (zumindest, wenn der Batch nicht immer auf dem selben Rechner laufen soll) wäre die Verwendung von Kurznamen der Art "
Im Batch könntest Du es so versuchen:
Grüße
bastla
Zusätzlich zu der von Skyemugen angeführten Möglichkeit per "
edit
" (oder der Verwendung eines anderen Editors wie zB Notepad++ - dort über "Kodierung - Zeichensatz - Westeuropäisch - OEM 850") könntest Du auch durch ein einfachesdir /b "E:\Backup System & pers*">>Batchdatei.cmd
Etwas weniger sicher (zumindest, wenn der Batch nicht immer auf dem selben Rechner laufen soll) wäre die Verwendung von Kurznamen der Art "
E:\BACKUP~1
" - herauszufinden überdir /x "E:\Backup System & pers*"
@echo off & setlocal
for /d %%i in ("E:\Backup System & pers*") do set "Pfad=%%i"
::Demo
dir "%Pfad%"
bastla
@mathe172
: Solange der Pfad unter Anführungszeichen verwendet wird, ist das "Escapen" nicht nur nicht nötig, sondern sogar kontraproduktiv (hätte übrigens ein kurzer Test gezeigt) - es besteht ja auch nicht die Gefahr einer Fehlinterpretation (zB des "&" als Veknüpfung zweier Anweisungen), da die Anführungszeichen für den CMD-Interpreter darauf hinweisen, dass es sich bei dem Teil dazwischen einfach um "Text" handelt.
Die Schwierigkeiten ergeben sich aus dem Unterschied in der Codierung: ASCII (CMD) vs ANSI (Windows) ...
Grüße
bastla
Vielleicht irre ich mich (wenn ja, dann korrigiert mich bitte
)
Auf Deinen besonderen Wunsch hin Die Schwierigkeiten ergeben sich aus dem Unterschied in der Codierung: ASCII (CMD) vs ANSI (Windows) ...
Grüße
bastla
Hallo evinben,
Man braucht die Datei nicht zu editieren, man kann cmd.exe mit chcp einfach mitteilen wie die Zeichen zu nehmen sind.
Gr³▀e
Jeb
Man braucht die Datei nicht zu editieren, man kann cmd.exe mit chcp einfach mitteilen wie die Zeichen zu nehmen sind.
@echo off
setlocal EnableDelayedExpansion
rem Erst mal umschalten damit die Sonderzeichen korrekt übernommen werden
chcp 1252
set "file=Backup System & persönliche Einstellungen"
rem Man kann zurückschalten, ist aber nicht zwingend
chcp 850
echo !file!
dir "!file!"
Gr³▀e
Jeb
Hallo evinben!
Danke vorweg für das ausführliche Feedback
Zumindest hinsichtlich der "
(die Anzahl der auf E:\ liegenden Dateien namens "MeinProgramm.exe" dürfte ja überschaubar sein).
Mit "
Eine relativ einfache Möglichkeit wäre übrigens noch die Verwendung der Auto-Vervollständigung: Wenn Du beginnst, einen Pfad einzugeben - also etwa:
und dann die TAB-Taste (wäre zumindest Default - ansonsten in der Registry unter "HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar" bzw "PathCompletionChar" zu finden) drückst, wird der Pfad komplettiert - nach dem Ersetzen des automatisch hinzugefügten Anführungszeichens durch
Grüße
bastla
P.S.:
- ich habe ja nur den "Notepad++"-Menüpunkt "Kodierung" zitiert ...
Danke vorweg für das ausführliche Feedback
Zumindest hinsichtlich der "
dir /b
"-Variante sollten Unterordner kein Problem darstellen - einfachdir /s /b "E:\MeinProgramm.exe">Datei.txt
Mit "
dir /x
" müsstest Du Dich "durchhhanteln", was vergleichweise wenig Spaß machen dürfte ... Eine relativ einfache Möglichkeit wäre übrigens noch die Verwendung der Auto-Vervollständigung: Wenn Du beginnst, einen Pfad einzugeben - also etwa:
echo E:\Back
\pers
und neuerlichem Drücken von TAB erhältst Du den Pfad der nächsten Ordnerebene and so on ...Grüße
bastla
P.S.:
eigentlich „Code“. „Kode“ gibt es auf Deutsch nicht, stimmt‘s?
Nicht schlagen Zitat von @evinben:
1. André / Vorschlag mit „edit.com“:
Aufgrund der gleichen Problematik habe ich „edit.com“ vor Kurzem hier im Forum kennengelernt und habe schon mal
probiert dorthin einen Pfad einzugeben, aber auch jetzt habe ich es leider wieder nicht geschafft. Ich habe versucht das
Tastatur-Layout von DE auf EN (wegen der Eingabe der Anführungszeichen, ansonsten Erscheinen mir dem DE-Layout lauter @@@@@)
und wieder auf DE (zur Eingabe der Umlaute) hin und her umzuschalten, damit ich letztendlich den ganzen Pfad eingeben kann. Aber
irgendwie klappte es bei mir im Anschluss dennoch nicht. Wie macht ihr das, wie schreibt ihr dorthin bzw. mit welchem
Tastatur-Layout? Ich schaffe leider nicht den erwähnten Pfad, wie folgt einzutippen:
start "MeinFensterText" /B "E:\Backup System & persönliche Einstellungen\2. MeinProgramm.exe"
1. André / Vorschlag mit „edit.com“:
Aufgrund der gleichen Problematik habe ich „edit.com“ vor Kurzem hier im Forum kennengelernt und habe schon mal
probiert dorthin einen Pfad einzugeben, aber auch jetzt habe ich es leider wieder nicht geschafft. Ich habe versucht das
Tastatur-Layout von DE auf EN (wegen der Eingabe der Anführungszeichen, ansonsten Erscheinen mir dem DE-Layout lauter @@@@@)
und wieder auf DE (zur Eingabe der Umlaute) hin und her umzuschalten, damit ich letztendlich den ganzen Pfad eingeben kann. Aber
irgendwie klappte es bei mir im Anschluss dennoch nicht. Wie macht ihr das, wie schreibt ihr dorthin bzw. mit welchem
Tastatur-Layout? Ich schaffe leider nicht den erwähnten Pfad, wie folgt einzutippen:
start "MeinFensterText" /B "E:\Backup System & persönliche Einstellungen\2. MeinProgramm.exe"
Aloha,
um ehrlich zu sein, verwirrt mich dein Beitrag ... Tastatur-Layout ändern hö?
Ich gehe bei dieser Art von Bearbeitung immer wie folgt vor:
cmd (meist schon in dem Ordner, wo die Datei liegt [hab Eingabeaufforderung im Kontextmenü verankert ^.^])
edit
Datei -> Öffnen
schreibe dann entweder den Pfad der Datei oben rein oder aber klicke mich meist manuell durch die Struktur z.B. im rechten Feld auf [-D-] dann entweder auf einen weiteren Unterordner oder direkt auf die gewünschte Datei im linken Feld und bestätige/öffne die Datei.
Dann hat man den Inhalt der Datei ja wie im Texteditor angezeigt und dann geh ich zu den Stellen, wo die Zeichen falsch dargestellt werden, lösche das falsche Zeichen und setze das korrekte. Dazu bedarf es eigentlich keiner Umstellung irgendwelcher Tastatur-Layouts o.Ä. wenn ich ein Anführungszeichen z.B. setze, dann steht dort auch dieses.
Dann natürlich am Ende
Datei -> Speichern
Datei -> Schließen/Beenden
und das cmd-Fenster auch zu per exit oder X ^.^
greetz André
@Skyemugen
(bei Bedarf auch mit Angabe des kompletten Pfades) durchführen ...
Grüße
bastla
edit
Datei -> Öffnen
ließe sich natürlich auch alsDatei -> Öffnen
edit Datei.txt
Grüße
bastla
@bastla
*lach* I know aber es ist bei mir irgendwie zur Gewohnheit geworden, wenn ich Befehle eintippe, müssen die so kurz wie möglich sein ;) und so brauch ich dann auch nicht den Dateinamen hintippen, hehe
aber klar, hätte ich nochmal erwähnen können, den eigentlich schnelleren Weg
greetz André
*lach* I know aber es ist bei mir irgendwie zur Gewohnheit geworden, wenn ich Befehle eintippe, müssen die so kurz wie möglich sein ;) und so brauch ich dann auch nicht den Dateinamen hintippen, hehe
aber klar, hätte ich nochmal erwähnen können, den eigentlich schnelleren Weg
greetz André
@Skyemugen
- in dieser Hinsicht ist übrigens die oben angeführte Verwendung der TAB-Taste auch nicht zu verachten ...
Grüße
bastla
und so brauch ich dann auch nicht den Dateinamen hintippen
Kein Einwand - ich bin durchaus ebenfalls interessiert daran, Fortschritte in der Disziplin "angewandte Faulheit" zu machen Grüße
bastla
Hallo evinben!
Hinsichtlich der Auto-Vervollständigung (funktioniert bei mir unter XP SP3 und W7, Vista nicht getestet): Der Eintrag 9 steht für TAB und wäre daher ok.
Es gibt in der Registry die gleichen Einträge auch unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" - könntest Du ev auch dort noch kontrollieren / ergänzen (allerdings sollte der HKCU-Eintrag eigentlich Vorrang haben) ...
Übrigens noch ein Weg, den Pfad für eine Datei in einem Unterordner zu erhalten: Du kannst die entsprechende Datei aus dem Explorer in das CMD-Fenster ziehen (und wiederum zB per
einer Text-/Batch-Datei hinzufügen).
Grüße
bastla
start "MeinFensterText" /B "E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen\2. MeinProgramm.exe"
funktioniert bei mir klaglos.start "Probe" /B "E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen\KlapptOderKlapptNicht.bat"
sollte so funktionieren:start "Probe" /B "cmd /c ""E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen\KlapptOderKlapptNicht.bat"""
Es gibt in der Registry die gleichen Einträge auch unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" - könntest Du ev auch dort noch kontrollieren / ergänzen (allerdings sollte der HKCU-Eintrag eigentlich Vorrang haben) ...
Übrigens noch ein Weg, den Pfad für eine Datei in einem Unterordner zu erhalten: Du kannst die entsprechende Datei aus dem Explorer in das CMD-Fenster ziehen (und wiederum zB per
>>Datei.txt echo "E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen\2. MeinProgramm.exe"
Grüße
bastla
Aloha,
also du verwirrst mich mehr und mehr *lach* bei mir wird im edit mit DE-Tastaturlayout ["] auch als ["] dargestellt, überhaupte alle Zeichen sind 1:1.
Ich habe deine Ordnerstruktur mir mal nachgebaut (war echt nötig, blick sonst gar nicht mehr durch) und mir ist aufgefallen, dass wenn man den Titel des Fensters (also hier "Probe") weglässt, er nicht auf die Idee kommt, den Pfad auseinander zu pflücken., ansonsten konnte ich dein Problem jetzt doch besser nachvollziehen ^.^
bastla's eben gepostete Lösung funktioniert natürlich (gleich mal mitgetestet) und man könnte auch
ausführen zur Not =)
Aber nochmal zum Editieren:
der im editor geschriebene Pfad "E:\Backup System & persönliche Einstellungen\persönliche Einstellungen"
wird als "E:\Backup System & pers÷nliche Einstellungen\pers÷nliche Einstellungen" bei mir dargestellt (im edit)
also gehe ich zu den [÷], lösche diese und ersetze sie durch [ö] (wie gesagt Tastaturlayout ist und bleibt auf DE) - speichere die Datei, mach das Bearbeitungsfenster zu und jetzt sieht die .bat im editor so aus:
"E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen"
Grüße, André
also du verwirrst mich mehr und mehr *lach* bei mir wird im edit mit DE-Tastaturlayout ["] auch als ["] dargestellt, überhaupte alle Zeichen sind 1:1.
Ich habe deine Ordnerstruktur mir mal nachgebaut (war echt nötig, blick sonst gar nicht mehr durch) und mir ist aufgefallen, dass wenn man den Titel des Fensters (also hier "Probe") weglässt, er nicht auf die Idee kommt, den Pfad auseinander zu pflücken., ansonsten konnte ich dein Problem jetzt doch besser nachvollziehen ^.^
bastla's eben gepostete Lösung funktioniert natürlich (gleich mal mitgetestet) und man könnte auch
cd "E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen"
start "Probe" test.bat
Aber nochmal zum Editieren:
der im editor geschriebene Pfad "E:\Backup System & persönliche Einstellungen\persönliche Einstellungen"
wird als "E:\Backup System & pers÷nliche Einstellungen\pers÷nliche Einstellungen" bei mir dargestellt (im edit)
also gehe ich zu den [÷], lösche diese und ersetze sie durch [ö] (wie gesagt Tastaturlayout ist und bleibt auf DE) - speichere die Datei, mach das Bearbeitungsfenster zu und jetzt sieht die .bat im editor so aus:
"E:\Backup System & pers”nliche Einstellungen\pers”nliche Einstellungen"
Grüße, André
Aloha,
nur noch als Schmunzler hinterher: edit.de gibt's nicht ;) ich tipp auch nicht edit.com, sondern nur edit (was eigentlich edit.com ist ^.^) aber wir merken ja, dass deine Windows-Version zu sehr im Englischen verwurzelt zu sein scheint, hehe.
btw: ohne Titel meinte ich wortwörtlich also nicht start "" /B "Pfad" sondern start /B "Pfad"
na hauptsache am Ende geht alles so wie es sein soll ;)
nur noch als Schmunzler hinterher: edit.de gibt's nicht ;) ich tipp auch nicht edit.com, sondern nur edit (was eigentlich edit.com ist ^.^) aber wir merken ja, dass deine Windows-Version zu sehr im Englischen verwurzelt zu sein scheint, hehe.
btw: ohne Titel meinte ich wortwörtlich also nicht start "" /B "Pfad" sondern start /B "Pfad"
na hauptsache am Ende geht alles so wie es sein soll ;)