Verzeichnisnamen mit Ausrufezeichen als Variable deklarieren
Ausrufezeichen "maskieren"
Hallo in die Runde!
Bitte um Nachsicht, wenn ich für einen Ladenhüter um Hilfe bitte: Ich mühe mich zur Zeit vergeblich ab, unter WIN XP Pro den Verzeichnisnamen "C:\Programme\Fritz!Box Monitor" als CMD-Variable zu deklarieren: Vor allem das Ausrufezeichen erscheint dabei nicht. (Könnte ein Ratgeber bitte gleich auch nochmal einen Satz in Bezug auf das Leerzeichen spendieren ?)
Ich betreibe ferner einen Editor, welcher Backup-Dateien mit der Endung "BK!" erzeugt. Auch diese Files würde ich gerne in Variablenform beschreiben, um sie gemeinsam mit anderen Backup- und Temp-Files per Batch zu entsorgen.
Wo kann ich solche und andere GRUNDREGELN wohl nachlesen ? ( ... was gehört z.B. in Klammern, in Anführungszeichen, in Hochkommata pp)
Danke im Voraus für jede Hilfe und
Grüße aus Essen
Jürgen
Hallo in die Runde!
Bitte um Nachsicht, wenn ich für einen Ladenhüter um Hilfe bitte: Ich mühe mich zur Zeit vergeblich ab, unter WIN XP Pro den Verzeichnisnamen "C:\Programme\Fritz!Box Monitor" als CMD-Variable zu deklarieren: Vor allem das Ausrufezeichen erscheint dabei nicht. (Könnte ein Ratgeber bitte gleich auch nochmal einen Satz in Bezug auf das Leerzeichen spendieren ?)
Ich betreibe ferner einen Editor, welcher Backup-Dateien mit der Endung "BK!" erzeugt. Auch diese Files würde ich gerne in Variablenform beschreiben, um sie gemeinsam mit anderen Backup- und Temp-Files per Batch zu entsorgen.
Wo kann ich solche und andere GRUNDREGELN wohl nachlesen ? ( ... was gehört z.B. in Klammern, in Anführungszeichen, in Hochkommata pp)
Danke im Voraus für jede Hilfe und
Grüße aus Essen
Jürgen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58645
Url: https://administrator.de/contentid/58645
Ausgedruckt am: 13.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Den Verzeichnisnamen kannst du ganz einfach wie alles andere auch in einer Variabeln hinterlegen.
Hier ein Beispiel:
Die " sollte man immer benutzen wenn Leerzeichen in Datei- oder Verzeichnisnamen vorkommen. Es schadet aber nicht sie Grundsätzlich bei Datei- und Verzeichnisnamen zu benutzen.
Als Beispiel:
Nachlesen kan man das alles in der Verschiedenen Postings hier bei Batch und Shell und in den Tutorials und Links unten.
miniversum
Hier ein Beispiel:
@echo off
set variablenname="C:\Programme\Fritz!Box Monitor"
echo [%variablenname%]
set "variablenname=C:\Programme\Fritz!Box Monitor"
echo [%variablenname%]
set variablenname="C:\Programme\Fritz!Box Monitor"
echo [%variablenname%]
set "variablenname=C:\Programme\Fritz!Box Monitor"
echo [%variablenname%]
Die " sollte man immer benutzen wenn Leerzeichen in Datei- oder Verzeichnisnamen vorkommen. Es schadet aber nicht sie Grundsätzlich bei Datei- und Verzeichnisnamen zu benutzen.
Als Beispiel:
echo Dies ist irgent ein Text>"eine beliebeige Datei.txt"
Nachlesen kan man das alles in der Verschiedenen Postings hier bei Batch und Shell und in den Tutorials und Links unten.
miniversum
Moin Juergenl,
die CMD.exe hat an dieser Stelle (Verwendung von Ausrufungszeichen bei DelayedExpansion) in der Tat ein Problem.
Einen nicht dokumentierten Bug, wäre richtiger.
Andere würden jetzt auch schreiben: Ist halt Shice programmiert und zu wenig getestet worden. Verkneif ich mir aber.
Wenn ein "Setlocal EnableDelayedExpansion" aktiv ist, dann ist es unmöglich,
Das Ausrufungszeichen lässt sich auch nicht als Literal/als Sonderzeichen maskieren.
Zumindest kenne ich weder einen Workaround noch eine offizielle M$-Einstufung als Bug.
Also die Delayed Expansion nicht pauschal aktivieren.
Gruss
Biber
die CMD.exe hat an dieser Stelle (Verwendung von Ausrufungszeichen bei DelayedExpansion) in der Tat ein Problem.
Einen nicht dokumentierten Bug, wäre richtiger.
Andere würden jetzt auch schreiben: Ist halt Shice programmiert und zu wenig getestet worden. Verkneif ich mir aber.
Wenn ein "Setlocal EnableDelayedExpansion" aktiv ist, dann ist es unmöglich,
- innerhalb von Variablennamen Ausrufungszeichen zu verwenden
- auch nur ein banales "echo Hallo Welt!" auszuführen ("Hallo Welt" ist das Ergebnis)
Das Ausrufungszeichen lässt sich auch nicht als Literal/als Sonderzeichen maskieren.
Zumindest kenne ich weder einen Workaround noch eine offizielle M$-Einstufung als Bug.
Also die Delayed Expansion nicht pauschal aktivieren.
Gruss
Biber