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

Ordnerpfad mit Leerzeichen auslesen

Frage Entwicklung Batch & Shell

Mitglied: barkingdog

barkingdog (Level 1) - Jetzt verbinden

04.02.2009, aktualisiert 11:36 Uhr, 6599 Aufrufe, 9 Kommentare

Hallo,

ich habe einen Eintrag in meinem Kontextmenü mittels dem ich vom aktuellen Verzeichnis in ein anderes wechseln kann, allerdings besteht das Problem, dass
ich bei Ordnern mit Leerzeichen nicht den gesamten Pfad ausgelesen bekomme. Im Anhang zwei Bilder um das Ganze nochmals zu verdeutlichen.

Kontextmenü mit dem Eintrag "Archiv 2007" mittels dem ich ins Archiv wechseln kann:

dbbc162b9dfefea73842df085362fc6d-menue - Klicke auf das Bild, um es zu vergrößern

Beispiel für eine Fehlermeldung bei Leerzeichen im Pfad:

18e82d99d4ae7f63bf245d2eeac1baa7-fehlschlag - Klicke auf das Bild, um es zu vergrößern

Statt "Neuer Ordner", hat er nur "Neuer" genommen und den Rest abgeschnitten. Ich habe mich schon selber bemüht eine for-Schleife zu konstruieren, allerdings habe ich wohl Syntaxfehler gemacht, weil das cmd-Fenster gleich weg war. Wäre nett wenn wir jemand etwas helfen könnte.
Gesucht habe ich auch schon nach dem Problem, allerdings konnte ich die Lösungen nicht auf mein Problem anwenden.

//Edit

Ach den Code den hatte ich ganz vergessen, tschuldigung.

01.
@echo off & setlocal  
02.
set "Archiv=\\fileserver\Archiv\2007"  
03.
set "Pfad=%~1\"  
04.
dir %1\>nul 2>nul || set "Pfad=%~dp1"  
05.
for /f "tokens=2 delims=\" %%i in ("%Pfad%") do set "P=%%j"  
06.
 
07.
if exist "%Archiv%\%P%" (  
08.
 start explorer /e,"%Archiv%\%P%"  
09.
 
10.
) else (  
11.
    echo  "%Archiv%\%P%" nicht gefunden ... & echo\ & pause  
12.
)

Grüße

barkingdog
Mitglied: 60730
04.02.2009 um 11:32 Uhr
Servus,

eine For Schleife kann man vielleicht sogar auch dazu mißbrauchen, aber sinnvoller und schneller wäre sehr wahrscheinlich zwei simple Anführungszeichen vor und hinter %1 - oder wie auch immer dein - nicht mitgeschicktes - Kontektmenüaufbohrendes Script den Ordner erkennt.

Aber das ist Rätselraten auf gut Glück. Deine Bilder sind leider nicht so aussagekräftig, wie der Code - der dahinter steht
Und da der fehlt - wie soll dir dann jemand helfen?

Gruß
Bitte warten ..
Mitglied: qwertz
04.02.2009 um 12:15 Uhr
Hallo,

ich verstehe dein Problem nicht ganz.
Ich vermute mal, du möchtest lediglich von einem Ordner in einen anderen fest definierten Ordner wechseln.
Also wozu dann den aktuellen Pfad ermitteln ?

Da zwischenzeitlich gerade dein Code reinkam ...
Meines Wissens werden Parameter, die an ein Dos-Script übergeben werden, immer am Leerzeichen getrennt.
D.h.: der Rest des Pfades steht dann in den Variablen %2 %3 %4 ...
Es ist ja auch nicht vorhersehbar, wieviele Leerzeichen der Pfad tatsächlich hat.

Aber: Wozu den aktuellen Ordner ermitteln und den Umweg über das DOS-Script?

Hier mal eine Registry-Datei, die das gewünschte von sich aus macht:
01.
Windows Registry Editor Version 5.00 
02.
[HKEY_CLASSES_ROOT\Folder\shell\ExploreToArchiv] 
03.
@="zum Archiv 2007 wechseln ..." 
04.
[HKEY_CLASSES_ROOT\Folder\shell\ExploreToArchiv\command] 
05.
@="Explorer.exe /e,\\fileserver\Archiv\2007"
Den Code einfach als .REG-Datei speichern und Datei doppelklicken.
Bitte warten ..
Mitglied: barkingdog
04.02.2009 um 13:26 Uhr
Hallo,

den Code hatte ich dummerweise vergessen, ohne den kann mir natürlich nicht viel geholfen werden.
Also die Anführungszeichen sind doch so weit richtig gesetzt oder ?


So dann möchte ich das Problem nochmal näher erläutern, war vielleicht wirklich etwas kurz. Es gibt hier einen fileserver auf dem Fileserver gibt es auch ein Archiv, die Ordnerstruktur des Archives gibt es aber auch noch für das aktuelle Jahr. Allerdings befinden sich die Daten wenn sie gerade nicht gebraucht werden im Archiv. Bin ich jetzt in
so einem leeren Ordner gelandet möchte ich ins Archiv wechseln und die Daten von da anschauen oder sie vielleicht auch in den aktuellen Ordner kopieren, dazu diese Tool. Ich hoffe das macht das ganze verständlicher.
Von daher muss ich doch auch den aktuellen Pfad ermitteln oder etwa nicht?
Die Geschichte mit den Variabln wusste ich jetzt noch gar nicht, werde ich gleich mal nach schauen.

Also wenn es auch irgendwie einfacher geht habe ich damit kein Problem.

Danke für diese Registry-Datei, doch wenn ich das jetzt richtig sehe, dann würde sie mich immer ins gleiche Verzeichnis bringen und das ist nicht gewünscht. Hinzu kommt noch dass sie bei mir nicht funktioniert.

Grüße

barkingdog
Bitte warten ..
Mitglied: 60730
04.02.2009 um 13:57 Uhr
Servus,

ach "du" warst das - ich erinnere mich..

Probier es mal so - ungetestet - beachte Zeile 4

01.
@echo off & setlocal 
02.
set "Archiv=\\fileserver\Archiv\2007" 
03.
set "Pfad=%~1\" 
04.
dir "%1\">nul 2>nul || set "Pfad=%~dp1" 
05.
for /f "tokens=2 delims=\" %%i in ("%Pfad%") do set "P=%%j" 
06.
 
07.
if exist "%Archiv%\%P%" ( 
08.
 start explorer /e,"%Archiv%\%P%" 
09.
 
10.
) else ( 
11.
    echo  "%Archiv%\%P%" nicht gefunden ... & echo\ & pause 
12.
)
gruß
Bitte warten ..
Mitglied: barkingdog
04.02.2009 um 14:08 Uhr
Hallo,

ja "ich" war das - ich erinnere mich auch an dich

Probiert, ohne Erfolg. Ich bekomme da nicht den vollständigen Pfad, weil sobald eine Leerzeile kommt
der Rest ignoriert wird.

Grüße

barkingdog
Bitte warten ..
Mitglied: 60730
04.02.2009 um 14:18 Uhr


nimm mal das @echo off am anfang raus, füghe an Zeile 9 ein Pause ein und probier es nochmal.

Du hättest die Frage eigentlich auch direkt an deinen alten Beitrag hängen können, denn der Code stammt von Bastla und wenn nicht er, wer kann dir sonst weiterhelfen, ohne eine Struktur aufzubauen.

Gruß
Bitte warten ..
Mitglied: barkingdog
04.02.2009 um 14:28 Uhr
Hallo,

hatte ich mir anfangs auch überlegt, aber weil der Thread bereits gelöst war dachte ich dann doch,
das es sinnvoller ist einen neuen Thread zu eröffnen.

Nun ja ich habe das "@echo off" am anfang raus genommen, habe in Zeile 9 eine Pause eingefügt allerdings
hat auch das nicht geholfen. Natürlich wäre Bastla der "beste" Ansprechpartner, aber es wird doch auch noch andere geben die vielleicht etwas wissen.

Gruß

barkingdog
Bitte warten ..
Mitglied: qwertz
04.02.2009 um 21:32 Uhr
Hallo barkingdog,

du hast recht. Die REG-Datei würde immer nur in das selbe Verzeichnis wechseln. Dein Problem war zu dem Zeitpunkt auch nicht so richtig klar. Leider habe ich wiedermal die Maskierung vergessen. Damit es funktioniert muss die letzte Zeile wie folgt geändert werden:
01.
Windows Registry Editor Version 5.00 
02.
[HKEY_CLASSES_ROOT\Folder\shell\ExploreToArchiv] 
03.
@="zum Archiv 2007 wechseln ..." 
04.
[HKEY_CLASSES_ROOT\Folder\shell\ExploreToArchiv\command] 
05.
@="Explorer.exe /e,\\\\fileserver\\Archiv\\2007"
Nun zu deiner Lösung.
TimoBeil hat recht, das da zwei simple Anführungszeichen fehlen. Jedoch nicht im Script sondern schon beim Aufruf im Kontextmenü. Ändere den entsprechenden Registry-Schlüssel in deinem Kontextmenü so ab das deiner Batchdatei der Parameter "%1" statt %1 übergeben wird. Dann klappt es auch mit Leerzeichen in den Pfaden.

Viele Grüsse
Bitte warten ..
Mitglied: barkingdog
05.02.2009 um 09:19 Uhr
Hallo,

vielen Dank für eure Hilfe. Das mit dem Registry-Schlüssel hatte ich gar nicht bedacht... nach dem hinzufügen
der beiden Anführungszeichen klappt es. Nur blöd dass sie jetzt den fileserver umstruktieren wollen. Nun ja dennoch nochmals vielen Dank und die alternative Lösung werde ich auch mal ausprobieren.

Viele Grüße

barkingdog
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mit Batch gesamtes txt auslesen mit Leerzeichen?
Frage von DrMarksmanBatch & Shell2 Kommentare

Guten Tag. Ich habe mal wieder eine Frage und zwar würde ich gerne einen kompletten .txt File mit einem ...

Windows Server
Ordnerpfad auf allen FS Server Dateien
Frage von lupoloWindows Server5 Kommentare

Moin, wir haben die Anforderungen bekommen, auf einem neuen FileServer auf jedem Dokument den Dateipfad zu "drucken". Hat jemand ...

Batch & Shell
Leerzeichen als Delimiter funktioniert nicht, ist es ein Leerzeichen?
gelöst Frage von AcJokerBatch & Shell2 Kommentare

Hallo, ich würde gerne mit diese Textdatei auslesen und in Tokens aufteilen Eigentlich sollte ich so in %%i doch ...

Batch & Shell
Leerzeichen im Pfad
Frage von JallioBatch & Shell4 Kommentare

Hallo erneut, ich werde hier echt noch zum Stammkunden Wenn ich den Befehl $body in der WindowsPowerShell ISE ausführe, ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter wieder installieren auf einer frischen Windows-Installation

Tipp von Lochkartenstanzer vor 12 StundenMicrosoft Office

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 14 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 15 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 18 StundenMicrosoft Office1 Kommentar

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware11 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...

Windows 10
Win10 Laptop findet keine Netzwerkgeräte und Freigaben mehr
Frage von CoolzeroWindows 1010 Kommentare

Hi, seit ein paar Tagen habe ich das Problem das mein Windows 10 Laptop keine Geräte mehr in der ...

Batch & Shell
Dateien verschieben mit batch
gelöst Frage von michi-ffmBatch & Shell10 Kommentare

Hallo Zusammen hat jemand evtl eine Idee? Zunächst hier das Skript: Leider werden keine UNC-Pfade unterstüzt, kann mir jemand ...