Jump to content
Sign in to follow this  
DAU-JONES

UNC Pfad mit Dosbefehl ausgeben???

Recommended Posts

Hallo Leute!

 

Ich suche nach einer Möglichkeit mir den UNC Pfad eines Netzlaufwerkes ausgeben zu lassen. Der Befehl "net" bietet zwar mannigfaltige Möglichkeiten der Informationsbeschaffung, aber ich habe leider noch nichts gefunden, das genau meinen Anforderungen entsprechen würde.

 

Ziel Soll es sein per Batch alle Netzlaufwerke aufzulisten und den dazugehörigen UNC-Pfad mittels Anfügeumleitung in eine Textdatei zur weiteren Verarbeitung abzulegen. Leider sind die Möglichkeiten Strings per Batch zu manipulieren relativ mager, sodass ich eigentliche nur die UNC Pfade zeilenweise in der Textdatei haben will.

Share this post


Link to post

Mit net view bzw. net view \\Rechnername bekommst Du eigentlich ziemlich viel raus. Der Output läßt sich mit if in alle Einzelteile zerlegen, das kann geschachtelt und anschließend gleich weiterverarbeitet werden, ohne daß Du dies erst in eine Datei schreibst und diese erneut ausliest.

 

-------------

Gruß, Auer

Share this post


Link to post

Erstmal Danke für die schnelle Antwort Auer:)

 

Net View hab ich schon durchgetestet. Damit bekomm ich leider nur die Namen der Freigaben auf beliebigen Rechnern (zumindest ist mir kein Parameter bekannt, der mir den UNC Pfad auspuckt).

Ich brauche irgendeinen Befehl, der mir in der Ausgabe den UNC Pfad mit ausspuckt, den Rest kann ich dann selbst erledigen:)

 

Als Abfrage parameter steht mir nur der Buchstabe des Netzlaufwerkes zur Verfügung.

Share this post


Link to post

Danke KlausK:)

 

Das ist so ziemlich genau das, was ich brauche:) Mal eine Frage aus reinem Interesse:)Was genau macht diese Zeile? Das Ergebnis kenn ich ja jetzt:) Welcher Mechanismus steckt aber dahinter? Die Syntax ist für mich reichlich kryptisch. Das habe ich in der Art noch nicht gesehen.

 

Edit:

 

Ich hab es jetzt mal bei mehreren Laufwerken getestet und festgestellt, das mir der befehl immer nur den Pfad des ersten Netzlaufwerkes rausgibt. Anyway, das bekomm ich schon geregelt(hab mal vorhin "for /?" eingegeben) :) Allerdings bereitet mir die Tatsache, das "Freigabe=\\%%i\%%j" anscheinend nur zur Formatierung da ist ein wenig Kopfzerbrechen, da ich es oft mit UNC's zu tun habe, die sich wie folgt darstellen:

\\byxxp3\tp\bl\ux\tr\install$

Das bedeutet, das ich im vorfeld nicht weiss wieviele teilsegmente der Pfad enthält. Diesbezüglich müsste ich das formatieren etwas dynamischer gestalten!?

 

mit

 

 

regards

Share this post


Link to post

Die einzigst Doku ist if /? - da steht doch alles drin.

 

[Edit]

Blödsinn: Muß natürlich for /? heißen.

 

Sprich: Von allen Dos-Befehlen gibt es mit Befehl /? Hilfen, mit

 

Befehl /? > info.txt

 

kann man sich dies in eine Textdatei schreiben - und dann viel probieren.

 

-----------

Gruß, Auer

Share this post


Link to post

@DAU-JONES

Frag mich nicht solche Sachen - ich nehme immer eine funktionierende For-Schleife und passe sie an. Die for-Schleife untersucht die Ausgabe des Befehls net use ab der 7. Zeile (skip=6), sucht nach dem Zeichen "\" (Delims=\) und übergibt die darauffolgenden Zeichen der 2. und 3. Fundstelle :confused: (Tokens=2-3) an die Variable %i bzw %j (%i wird bei jeder Fundstelle hochgezählt).

 

@auer

Meinst Du "for /?"

 

@r_t

Meine Bauchschmerzen gehen auch schon los :rolleyes: - welches Problem hast Du?

Share this post


Link to post
Original geschrieben von DAU-JONES

... Ich hab es jetzt mal bei mehreren Laufwerken getestet und festgestellt, das mir der befehl immer nur den Pfad des ersten Netzlaufwerkes rausgibt...

Ich habs befürchtet, dass das nur mit dem ersten Netzlaufwerk funzt, ich schau auch mal, ob und was ich da noch an Optimierung leisten kann.

Share this post


Link to post

Danke Klaus:)

 

Ich werde mich morgen auf der Arbeit mal an eine vernünftige Batch für das Problem setzen. Werde das ergebnis auf jedenfall dann hier veröffentlichen:)

Share this post


Link to post

@DAU-JONES: Deine Ergänzung läuft nun aber - fürchte ich - auf eine Begriffsvermischung hinaus. Bei \\byxxp3\tp\bl\ux\tr\install$ ist die Freigabe tp, der Rest ist der darunterliegende Pfad, wobei das letzte Verzeichnis 'zufälligerweise' wie eine versteckte Freigabe aussieht.

 

Mit net use im Inneren des for - Ausdrucks liefert das Beispiel von @klausk immer nur Ausdrücke der Form \\Rechner\Freigabe, niemals etwas längeres.

 

Falls Du mehrere Ausdrücke hintereinander verarbeiten möchtest, liefert Dir die Umgebungsvariable immer nur den ersten Ausdruck. Da ist eine doppelte for-Schleife notwendig:

 

for /f "Skip=6 delims=: tokens=1-2" %%i in ('net use') do for /f %%m in ('echo %%j') do if not "%%m" == "ECHO" echo %%m

 

Zunächst wird der Output von net use am Doppelpunkt in zwei Teile getrennt, der zweite Teil in 'echo %%j' ausgegeben und mit Leerzeichen getrennt, so daß der Nachklapp 'Microsoft ...' wegfällt. Da hinten Leerzeilen folgen, bekommt man Echos raus, also muß dies abgefangen werden, sonst würden unsinnige Befehle eingesetzt. Statt des letzten echo %%m kannst Du einen Befehl einsetzen oder einen Batch mit Call aufrufen, der den Freigabenamen der Form \\Server\Freigabe als Parameter enthält.

 

-------------

Gruß, Auer

Share this post


Link to post

Mit einem anderen Trennzeichen ( : statt \ ) und einer zweiten For-Schleife geht's - es wird der komplette Pfad aller Netzlaufwerke angezeigt:

FOR /F "Tokens=2-3 Delims=: skip=6" %%i in ('net use') do FOR /F "Delims=; " %%A in ('@echo %%i') do @echo %%A

Der Nachteil an dem Konstrukt ist, dass am Schluß immer eine leere Ausgabe ohne Pfad erzeugt wird. Beim Testen @echo off nicht vergessen, sonnst wird die Ausgabe unübersichtlich ;)

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...