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

Wie wechsle ich zu einem Verzeichnis, das ein ! enthält?

Mitglied: Cottonwood

Cottonwood (Level 1) - Jetzt verbinden

10.09.2014, aktualisiert 00:32 Uhr, 1262 Aufrufe, 15 Kommentare, 1 Danke

01.
c: 
02.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
03.
rem setlocal enabledelayedexpansion 
04.
set "drive=!folder:~0,2!" 
05.
%drive% 
06.
rem endlocal enabledelayedexpansion 
07.
set path="!folder:~2!" 
08.
setlocal enabledelayedexpansion 
09.
cd %path% 
10.
11.
set drive 
12.
set path 
13.
set folder 
14.
pause
Das c: in der 1. Zeile dient nur dazu, dass das aktuelle Laufwerk nicht dem Ziellaufwerk entspricht.

Ich möchte folgende Befehle ausführen:

01.
d: 
02.
cd \Anwendungsdaten\Fritz!\Faxeingang
Aber wie ich auch immer mit setlocal und endlocal umgehe, es klappt nicht. Entweder geht die 1. oder die 2. Zeile. Aber nie beide.

Was mache ich falsch?
Mitglied: DonMatze
10.09.2014 um 03:04 Uhr
Moin,

bekommst du eine Fehlermeldung, o.ä.?


Viele Grüße
Matze
Bitte warten ..
Mitglied: certifiedit.net
10.09.2014 um 06:27 Uhr
Wenn du in der Kommandoconsole bist, führe den Befehl "cd " (deinpfad) einfach aus, hier wird dir klar gezeigt, wie es auszusehen hat ;) (Hilfe zur Selbsthilfe)
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 08:11 Uhr
Moin,
deine Zeilen lassen sich auf das hier reduzieren
01.
Set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
02.
cd /d "%folder%"
cd /d übernimmt automatisch das wechseln auf das andere Laufwerk.

Grüße Uwe

p.s. dein Fehler ist, das du die systemweit definierte Variable path verwendest (die bereits mit Pfaden gefüllt ist) und innerhalb von setlocal überschreibst. Nach einem endlocal wird diese wieder auf Ihren Ursprungswert zurückgesetzt !! Siehe dazu: http://ss64.com/nt/setlocal.html
Bitte warten ..
Mitglied: Cottonwood
10.09.2014, aktualisiert um 11:39 Uhr
@DonMatze:
Je nach Vorgehensweise bekomme ich auch eine Fehlermeldung.
Im günstigsten Fall wird das ! einfach ignoriert. Dadurch funktioniert natürlich der cd nicht.

Ich habe mal vier Beispiele gemacht. Die hänge ich aber der Übersicht halber als getrennte Antworten hinten an.
Bitte warten ..
Mitglied: Cottonwood
10.09.2014, aktualisiert um 12:38 Uhr
@certifiedit.net:
Die Syntax des Befehls ist nicht das Problem.
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 11:37 Uhr
Danke für deinen konstruktiven Vorschlag. Damit sollte es gehen.

Ich möchte aber auch das Problem verstehen.
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 11:49 Uhr
Zitat von Cottonwood:
Ich möchte aber auch das Problem verstehen.
ganz einfach, Ausrufezeichen (bzw. das was zwischen diesen steht) werden, wenn enabledelayedexpansion aktiviert ist im String ausgewertet. Das führt dazu das das Ausrufezeichen quasi aus dem Pfad entfernt wird, wenn du es mit set einer Variablen zuweist.

Btw. benötigst du nicht unbedingt "delayed expansion" um Teile eines Strings auszulesen:
01.
@echo off  
02.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang"  
03.
set "drive=%folder:~0,2%" 
04.
set "pfad=%folder:~2%"
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 12:21 Uhr
Hier fehlt das ! im Pfad (siehe ganz unten)


01.
cd\ 
02.
c: 
03.
setlocal enabledelayedexpansion 
04.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
05.
set "drive=!folder:~0,2!" 
06.
%drive% 
07.
set path="!folder:~2!" 
08.
cd %path% 
09.
10.
set drive 
11.
set path 
12.
set folder

01.
cd\ 
02.
 
03.
D:\>c: 
04.
 
05.
C:\>setlocal enabledelayedexpansion 
06.
 
07.
C:\>set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
08.
 
09.
C:\>set "drive=!folder:~0,2!" 
10.
 
11.
Hier fehlt das ! im Pfad 
12.
 
13.
 
14.
C:\>d: 
15.
 
16.
D:\>set path="!folder:~2!" 
17.
 
18.
D:\>cd "\Anwendungsdaten\Fritz\Faxeingang" 
19.
Das System kann den angegebenen Pfad nicht finden. 
20.
 
21.
D:\>set drive 
22.
drive=d: 
23.
 
24.
D:\>set path 
25.
Path="\Anwendungsdaten\Fritz\Faxeingang" 
26.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
27.
 
28.
D:\>set folder 
29.
folder=d:\Anwendungsdaten\Fritz\Faxeingang
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 12:28 Uhr
Hier wird das Laufwerk nicht richtig zugewiesen


01.
c: 
02.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
03.
set "drive=!folder:~0,2!" 
04.
%drive% 
05.
set path="!folder:~2!" 
06.
cd %path% 
07.
08.
set drive 
09.
set path 
10.
set folder

01.
c: 
02.
 
03.
C:\>set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
04.
 
05.
C:\>set "drive=!folder:~0,2!" 
06.
 
07.
C:\>!folder:~0,2! 
08.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung 
09.
ist falsch. 
10.
 
11.
C:\>set path="!folder:~2!" 
12.
 
13.
C:\>cd "!folder:~2!" 
14.
Das System kann den angegebenen Pfad nicht finden. 
15.
 
16.
C:\>set drive 
17.
drive=!folder:~0,2! 
18.
 
19.
C:\>set path 
20.
Path="!folder:~2!" 
21.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
22.
 
23.
C:\>set folder 
24.
folder=d:\Anwendungsdaten\Fritz!\Faxeingang
Bitte warten ..
Mitglied: Cottonwood
10.09.2014, aktualisiert um 12:31 Uhr
Hier wird im richtig abgetrennten Pfad beim cd das ! nicht berücksichtigt.


01.
cd\ 
02.
c: 
03.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
04.
setlocal enabledelayedexpansion 
05.
set "drive=!folder:~0,2!" 
06.
%drive% 
07.
set path="!folder:~2!" 
08.
cd %path% 
09.
10.
set drive 
11.
set path 
12.
set folder

01.
cd\ 
02.
 
03.
D:\>c: 
04.
 
05.
C:\>set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
06.
 
07.
C:\>setlocal enabledelayedexpansion 
08.
 
09.
C:\>set "drive=!folder:~0,2!" 
10.
 
11.
Hier wird im richtig abgetrennten Pfad beim cd das ! nicht berücksichtigt. 
12.
 
13.
 
14.
C:\>d: 
15.
 
16.
D:\>set path="!folder:~2!" 
17.
 
18.
D:\>cd "\Anwendungsdaten\Fritz!\Faxeingang" 
19.
Das System kann den angegebenen Pfad nicht finden. 
20.
 
21.
D:\>set drive 
22.
drive=d: 
23.
 
24.
D:\>set path 
25.
Path="\Anwendungsdaten\Fritz!\Faxeingang" 
26.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
27.
 
28.
D:\>set folder 
29.
folder=d:\Anwendungsdaten\Fritz!\Faxeingang
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 12:34 Uhr
habe ich doch oben schon geschrieben:
hier nochmal zum mitlesen ...
01.
@echo off 
02.
set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
03.
set "drive=%folder:~0,2%" 
04.
set "pfad=%folder:~2%" 
05.
echo %drive% 
06.
echo %pfad%
p.s. das lässt sich auch alles in einen Kommentar schreiben, anstatt dafür hier extra 3 Kommentare zu schreiben
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 12:36 Uhr
Bei endlocal werden das Laufwerk und die Variable %drive% zurückgesetzt.


01.
set "drive=!folder:~0,2!" 
02.
%drive% 
03.
endlocal enabledelayedexpansion 
04.
set path="!folder:~2!" 
05.
setlocal enabledelayedexpansion 
06.
cd %path% 
07.
08.
set drive 
09.
set path 
10.
set folder

01.
cd\ 
02.
 
03.
D:\>c: 
04.
 
05.
C:\>set "folder=d:\Anwendungsdaten\Fritz!\Faxeingang" 
06.
 
07.
C:\>setlocal enabledelayedexpansion 
08.
 
09.
C:\>set "drive=!folder:~0,2!" 
10.
 
11.
C:\>d: 
12.
 
13.
D:\>endlocal enabledelayedexpansion 
14.
 
15.
C:\>set path="!folder:~2!" 
16.
 
17.
C:\>setlocal enabledelayedexpansion 
18.
 
19.
C:\>cd "!folder:~2!" 
20.
Das System kann den angegebenen Pfad nicht finden. 
21.
 
22.
C:\>set drive 
23.
Die Umgebungsvariable "drive" ist nicht definiert. 
24.
 
25.
C:\>set path 
26.
Path="!folder:~2!" 
27.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
28.
 
29.
C:\>set folder 
30.
folder=d:\Anwendungsdaten\Fritz!\Faxeingang
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 12:42 Uhr
Das entspricht meinem 2. Beispiel (hoffe ich). Das klappt auch nicht (sh. weiter unten).
Bitte warten ..
Mitglied: Cottonwood
10.09.2014 um 12:46 Uhr
Bei mir funktioniert das aber nicht (sh. Beispiel).
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 12:50 Uhr
schau mal genau hin bitte ...ich verwende kein "delayed expansion" mit den Ausrufezeichen, sondern mit Prozentzeichen aus dem oben bereits erwähnten Grund !!
01.
set "drive=%folder:~0,2%" 
02.
set "pfad=%folder:~2%"
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Variable enthält nur den letzten Wert

gelöst Frage von Phill93Batch & Shell4 Kommentare

Hallo, bin hier gerade am verzweifeln. Ich möchte einen Variable auf das vorkommen eines bestimmten Strings prüfen. Das klapp ...

Basic

Excel VBA enthält

Frage von AngelsBasic

Guten Tag Ich bin ganz neu in diesem Forum und hätte eine Frage. Wie kann ich bei diesem bestehenden ...

Batch & Shell

Batch: Wenn Buchstaben im Wort enthalten dann......

gelöst Frage von Luckyman7471Batch & Shell7 Kommentare

Hallo Leute, Ich würde gerne folgendes realisieren: Wenn im lokalen Computernamen die Buchstaben "fa" enthalten sind dann soll ein ...

Windows Server

RDP - enthaltene Lizenzen.?!?

gelöst Frage von FA-jkaWindows Server5 Kommentare

Ich meine mal vor ein paar Jahren (Server 2008r2?) gelesen zu haben, dass bei einer Windows-Serverlizenz auch zwei Lizenzen ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 19 MinutenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 20 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung23 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...