dawson
Goto Top

lange Pfade abkuerzen, wenn mehrfach vorhanden

Hallo,
hab das Problem, dass ich per batch-Datei auf diverse Dateien in unserem Netzwerk zugreifen muss und diese Dateien in folgenden Ordnern abgelegt sind:

H:\Abbuchung
H:\Eigene Dateien Achhammer
H:\Eigene Dateien Erdinger
H:\Eigene Dateien Gatzhammer
H:\Eigene Dateien Götz
H:\Eigene Dateien Hangstingl
H:\Eigene Dateien Herrler
H:\Eigene Dateien Straile
H:\Statistiken

So. Wie ich lange Dateinamen bzw. Pfade abkürzen kann, weiß ich mittlerweile.
Deshalb funktioniert der Aufruf eines Pfads mit H:\eigene~1\test.xls auch wunderbar.
Aber... nur, solange ich in den Ordner "Eigene Dateien Achhammer" rein will.

Per Eingabe in cmd hab ich mittlerweile herausgefunden, dass Achhammer sich mit ~1, Erdinger mit ~2, Hanfstingl sich mit ~3 und Herrler mit ~4 abgekürzt wird.
Gibt aber für mich keinen Sinn, da ein Aufruf mit ~5 nicht mehr funktioniert (obwohl noch viele andere fast gleichnamige Ordner vorhanden sind) und die ersten vier ja auch nicht in alphabetischer Reihenfolge (oder eine andere offensichtliche) abgefragt werden.

Dass man auch lange Pfade schreiben kann, wenn man den Pfad in "" setzt, weiß ich mittlerweile auch, ist hier aber nicht die Frage.
Ich möchte das ganze eben so über ~1 aufrufen... muss möglich sein, ich find aber (auch nach längerer google-Suche) nix über dieses Thema. Leider.

Vielleicht kann mir hier ja einer helfen.

Danke schon mal.

Content-Key: 89444

Url: https://administrator.de/contentid/89444

Printed on: April 19, 2024 at 21:04 o'clock

Mitglied: 60730
60730 Jun 09, 2008 at 14:25:40 (UTC)
Goto Top
Hallo,

entscheident für ~1 ~2 usw ist nicht das Alphabet, sondern die Reihenfolge - welcher Ordner zuerst angelegt wurde.

Von daher - wenn du ~123 benutzen willst und "erstmal" keine neuen Ordner angelegt werden - neuanlegen unter Verwendung des Alphabets.
Obwol "echter leerzeichen Name" natürlich auf Dauer eleganter und "durchsichtiger" ist.
Member: Connor1980
Connor1980 Jun 09, 2008 at 17:50:52 (UTC)
Goto Top
Also entweder arbeitest du mit Anführungszeichen um die Pfadnamen oder probierst es mal mit Variablen.
Member: Biber
Biber Jun 09, 2008 at 18:10:26 (UTC)
Goto Top
Moin dawson,

zumindest Dich einen Schritt näher ranzubringen kann ich mal versuchen.

Der DIR-Befehl ist ja durchaus in der Lage, den kurzen Dateinamen mit auszugeben.

So würdest Du mit einem Befehl vom CMD-Prompt wenigstens die "kurzen" Dateinamen ohne Probieren ermitteln können.
Am CMD-Prompt.
Dir /ad /x h:
---bitte selbst testen.
alle Verzeichnisse, bei einen Kurznamen haben als 2spaltige Liste:
For /f "tokens=3,4,*" %i in ('dir /ad /x "h:\"') do @If "%i"=="<DIR>" @if [%k] NEQ  @echo [%j] "%k"  
einfach mal Copy&pasten und vom CMD-Prompt aus abschicken.

Mit dieser FOR/F-Anweisung kannst Du natürlich die Namen FEST hinterlegen oder auch die Batchdatei selbst den Kurznamen EINES Verzeichnisses ermitteln lassen.

Falls Dein Wunsch aber sogar in die Richtung geht ...
"Hey, außer mir kennt und benutzt doch keine Sau dieser Shortnames - ich benenne die (nur die Shortnames, nicht die sichtbaren Langnamen) einfach um in "Dawson~1" ..."Dawson~9"....

Geht auch mit Hilfe des Utilities FsUtil (einfach mit FsUtil /? das Vorhandenensein überprüfen).

Allerdings sind das relativ exotische Gefilde - ich habe sowas zwar schon mal aus Neugier gemacht, aber nicht wirklich in einer Produktivumgebung auf Seiteneffekte getestet.

Und ich traue keinem M$-Betriebssystem weiter, als ich es werfen kann.

Grüße
Biber
Member: dawson
dawson Jun 10, 2008 at 06:13:26 (UTC)
Goto Top
Ja bestens. Vielen Dank für die zackig schnellen Antworten.

Der Aufruf von Biber war genau das, was ich gesucht hab (FsUtil werd ich bei Gelegenheit auch mal testen - merci für den Hinweis).
Der zweite, längere Aufruf hat mir dann alle Kurznamen und Langnamen in einer 2spaltigen Liste angezeigt.

M$ verwendet ansch. ab dem 4 gleichnamigen Ordner bei mir selbst erfundene Abkürzungen wie "EIDD04~1" oder "EI34EA~1". Da kann man so ja nu wirklich nicht drauf kommen.

Herzlichen Dank.
Problem gelöst.

Ciao
Dawson