Top-Themen

Aktuelle Themen (A bis Z)

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

Verzeichnisnamen mit Ausrufezeichen als Variable deklarieren

Frage Entwicklung Batch & Shell

Mitglied: Juergenl

Juergenl (Level 1) - Jetzt verbinden

10.05.2007, aktualisiert 18:38 Uhr, 9696 Aufrufe, 4 Kommentare

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
Mitglied: miniversum
10.05.2007 um 08:08 Uhr
Den Verzeichnisnamen kannst du ganz einfach wie alles andere auch in einer Variabeln hinterlegen.
Hier ein Beispiel:
@echo off
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
Bitte warten ..
Mitglied: Juergenl
10.05.2007 um 09:14 Uhr
Hallo miniversum,

danke für Deine schnelle Antwort:

Den Verzeichnisnamen kannst du ganz einfach
wie alles andere auch in einer Variabeln
hinterlegen.
Hier ein Beispiel:
> @echo off
> set
variablenname="C:\Programme\Fritz!Box Monitor"
> echo [%variablenname%]
> set
"variablenname=C:\Programme\Fritz!Box Monitor"
> echo [%variablenname%]

Die " sollte man immer benutzen ....

Ich habe das eben auf die Schnelle in Form des Batch-Schnipsels in beiden Varianten (%variabl0% und %variabl1%)versucht , leider aber nicht mit dem gewünschten Erfolg:

@ECHO OFF & SetLocal EnableDelayedExpansion & CLS
:: ----------------------------------------------------------
set variabl0="C:\Programme\Fritz!Box Monitor"
echo [%variabl0%] >> xtest.txt
set "variabl1=C:\Programme\Fritz!Box Monitor"
echo [%variabl1%] >> xtest.txt
goto :eof

:: Ausgabe:

["C:\Programme\FritzBox Monitor"]
[C:\Programme\FritzBox Monitor]
::


Für beide Varianten zeigt 'echo' den Inhalt leider OHNE das Ausrufezeichen, während das Blank richtig erfaßßt wird ... - sorry mache ich da etwas verkehrt ?

Nachlesen kan man das alles in der Verschiedenen Postings hier bei Batch und
Shell ....

Den einschlägigen Stoff hier im Forum habe ich natürlich schon rauf und runter durchgenommen. In diesem Fall aber leider ohne den rechten Erfolg. Also auf ein Neues!

Beste Grüße

Jürgen


PS: Ich melde mich noch einmal, nachdem ich zur Sicherheit mal das 'EnableDelayedExpansion' auskommentiert habe, und siehe da:


@ECHO OFF
:: & SetLocal EnableDelayedExpansion & CLS
:: ----------------------------------------------------------
type xtest.bat > xtest.txt
echo. >> xtest.txt
echo
>> xtest.txt
set variabl0="C:\Programme\Fritz!Box Monitor"
echo [%variabl0%] >> xtest.txt
set "variabl1=C:\Programme\Fritz!Box Monitor"
echo [%variabl1%] >> xtest.txt
echo
>> xtest.txt
echo. >> xtest.txt

:: ===Ausgabe:

["C:\Programme\Fritz!Box Monitor"]
[C:\Programme\Fritz!Box Monitor]
::


In diesem Fall kommt also das heraus, was ich wollte. Danke noch einmal!

Welchen Zusammenhang dies allerdings mit 'DelayedExpansion' haben mag ... darüber grübelt jetzt heftig

mit freundlichen Grüße

Jürgen
Bitte warten ..
Mitglied: Biber
10.05.2007 um 12:52 Uhr
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,
  • 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
Bitte warten ..
Mitglied: Juergenl
10.05.2007 um 18:38 Uhr
Hej Biber,

Dank für diesen Hinweis !

die CMD.exe hat an dieser Stelle (Verwendung
von Ausrufungszeichen bei DelayedExpansion)
in der Tat ein Problem.
Einen nicht dokumentierten Bug, wäre
richtiger.

"THAT's NOT A BUG, IT's A (NEW) FEATURE!"

Wenn ein "Setlocal
EnableDelayedExpansion" aktiv ist, dann
ist es unmöglich,
  • innerhalb von Variablennamen
Ausrufungszeichen zu verwenden

Das Ausrufungszeichen lässt sich auch
nicht als Literal/als Sonderzeichen
maskieren.

... aber wie sollte DA jemals ein Mensch drauf kommen ? Die Erfinderin hat für solche Eigenheiten natürlich 'Gute Gründe', - streng geheim natürlich!

Also die Delayed Expansion nicht pauschal
aktivieren.

Auch aus dieser Sicht bestimmt ratsam!

Nochmals besten Dank beiderseits und Grüße aus Essen

Jürgen
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable in FOR-Schleife deklarieren und außerhalb dieser nutzen
Frage von WarhammerBatch & Shell1 Kommentar

Hallo zusammen, ich bin ziemlicher Neuling im scripten von Batch Datein. Meine Frage: Wie kann ich eine Variable außerhalb ...

PHP
Dateiendung und Verzeichnisname aus Scriptausgabe entfernen
Frage von Martin-BRPHP8 Kommentare

Hallo zusammen, ich möchte gerne in einem bereits vorhanden Script das Verzeichnis und die Dateiendung in der Ausgabe entfernen. ...

Debian
Passwörter in Skripten die mit Dollar-Ausrufezeichen beginnen
gelöst Frage von crackhawkDebian5 Kommentare

Hallo zusammen! Sorry für den Titel, aber $ und ! sind da leider nicht erlaubt. Ich habe ein Problem ...

Windows 7
Regelmäßiges Robocopy mit Uhrzeit im Verzeichnisnamen
gelöst Frage von fnord2000Windows 72 Kommentare

Hallo, also die zu lösende Aufgabe soll es sein, unter Win7 in regelmäßigen Abständen („alle X Stunden“) ein bestimmtes ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 51 MinutenDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 1 StundeWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 4 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...