fla5hback
Goto Top

Via BATCH ein AD-Netzwerk nach Ordnername durchsuchen ?

Hallo,

ich wende mich an euch weil ich unter Win 7 nicht mehr die konfortable Suche nach Ordnern im Netzwerk habe... IE 8 durchsucht automatisch die lokale Festplatte.

Nun dachte ich mir das dies doch mit einer batch gehen müsste. Ich habe auch nicht allzuviel Erfahrung mit Batchprogrammierung. Der bisherige Quelltext sucht wirklich jeden Ordner mit der FIND richtig, aber er durchsucht jeden Eintrag, das dauert ewig bei tausenden von Ordnern.

Gibt es einen Trick (beim IE6 ging es ja auch fix) den man hier anwenden kann damit er nicht so lange suchen muss ?
Irgendetwas mit rekursiver suche oder so ...

Bisheriger Quelltext:

@echo OFF

set /p EINGABE=Bitte Suchbegriff eingeben:
dir \HOME.SUF\DATA /S /A /B | FIND "%EINGABE%" > dir2.txt

@pause
:end

Vorab vielen Dank für jede Hilfe !

Gruß Alex T.

Content-Key: 161476

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: Fla5hback
Fla5hback Feb 24, 2011 at 08:20:28 (UTC)
Goto Top
Evtl. auch so eine Suche gestalten, das nur die ersten 5 Pfadabschnitte also "\\erste Ebene\zweite Ebene\...\...\Fünfte Ebene" durchsucht werden ?
Gibt es so etwas in BATCH programmierung ?
Member: Snowman25
Snowman25 Feb 24, 2011 at 08:25:48 (UTC)
Goto Top
Hallo @Fla5hback,

Probier mal statt dir \HOM.SUF\DATA /S /A /B ein einfaches tree \HOM.SUF\DATA.

Gruß
Snow

PS: ist dein /A-Switch im dir-Befehl nicht überflüssig?
Member: Fla5hback
Fla5hback Feb 24, 2011 at 08:33:41 (UTC)
Goto Top
Gute Idee, aber nun wird kein Pfad in die TXT Datei geschrieben, sondern kryptische Zeichen... muss hier noch ein Atribut gesetzt werden ?

Ergebnis:

³ ÃÄÄÄ0732
³ ³ ÃÄÄÄPT0732
³ ÀÄÄÄ0732

(Suche war "0732")... Die suche scheint auch längere Zeit zu dauern. Bis ich beim letzten Ordner angekommen bin dauert es viel zu lange...
Member: Snowman25
Snowman25 Feb 24, 2011 at 08:40:30 (UTC)
Goto Top
hmm stimmt. Hatte nicht bedacht, dass tree garnicht den kompletten Pfad anzeigt, obwohl das für das Ordnersuchen ja doch sehr nützlich wäre face-plain
Aber mit dir /S werden dir auch alle Dateien angezeigt, was wohl zu viel des Guten ist.

Deine 'kryptischen Zeichen' sind übrigens Unicode-Character. Mit tree /A sollten es ASCII-Zeichen werden.
Was du machen könntest:

Du legst dir ein Offline-Suchverzeichnis an. Also eine Textdatei, in der die Ausgabe eines kompletten dir-Befehls steht. Diese Textdatei zu durchsuchen geht wesentlich schneller, als den kompletten Ordnerbaum abzuklappern. Solange du nicht nach hochaktuellen Ordnern suchen musst, solltest du kein Problem damit haben. Unter Umständen könnte auch ein zeitgesteuertes Skript die Textdatei stündlich neu schreiben.

Gruß
Snow
Member: Fla5hback
Fla5hback Feb 24, 2011 at 08:46:09 (UTC)
Goto Top
Danke dir zunächst für deinen Lösungsansatz, Es werden mit den Attribut /A bzw /F die Ordnerstruktur grafisch dargestellt

Ja deinen 2. Gedanken hatte ich auch schon, da sich aber Ordner hinzufügen oder Pfade sich verändern müsste hier ein dauerhaftes aktualisieren notwendig sein was auch wieder das Netzwerk belastet... Es muss doch möglich sein, die suche in der "dir" auf 5 Schleifen (Pfade) einzugrenzen...

Siehe Kommentar: ... 5 Pfadabschnitte also "\\erste Ebene\zweite Ebene\...\...\Fünfte Ebene"...
Member: bastla
bastla Feb 24, 2011 at 09:02:15 (UTC)
Goto Top
@snow
ist dein /A-Switch im dir-Befehl nicht überflüssig?
Der ist nur nicht komplett - eigentlich wäre hier "/ad" gefragt ...

Grüße
bastla
Member: Fla5hback
Fla5hback Feb 24, 2011 at 09:12:55 (UTC)
Goto Top
Ja okay, mit dem /S-Switch komme ich auch aus... aber das Problem ist das er wirklich bis zur x-ten Ebene durchsucht und das macht es langsam face-sad
Mit dem /AD-Swich allein wird gar nix in der TXT Datei abgelegt.
Member: bastla
bastla Feb 24, 2011 at 09:24:46 (UTC)
Goto Top
Hallo Fla5hback und willkommen im Forum!

Die von Dir gewünschte Beschränkung der Suchtiefe würde ich, speziell wenn es schnell gehen soll, über "robocopy" realisieren - zB
robocopy \\HOME.SUF\DATA C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0 | FIND "%EINGABE%" >dir2.txt
Wegen des Schalters "/L" wird das Kopieren nur simuliert ...

[Edit]
Mit dem /AD-Swich allein wird gar nix in der TXT Datei abgelegt.
Der sollte ja auch nur "/A" ersetzen ...
[/Edit]

Grüße
bastla
Member: Fla5hback
Fla5hback Feb 24, 2011 at 09:34:55 (UTC)
Goto Top
Hallo Bastla,

wow... bin beeindruckt über die Anzahl der Schalter in dieser Befehlszeile... leider macht er bei mir gar nichts wenn ich diese Zeile nutze, sorry.
Hmm, was macht dieser Befehl ? Kopiert die Struktur bei finden auf c:\ bis zur 5 ebene ?
Member: bastla
bastla Feb 24, 2011 at 09:43:10 (UTC)
Goto Top
Hallo Fla5hback!
leider macht er bei mir gar nichts wenn ich diese Zeile nutze, sorry.
Verwende mal nur den "robocopy"-Befehl (ohne filtern und umleiten) - gedacht war er an sich als Ersatz Deiner "dir"-Zeile von oben ...
Kopiert die Struktur bei finden auf c:\ bis zur 5 ebene ?
Simuliert das Kopieren und gibt nur die gewünschten Informationen aus - bis auf die Schalter "/LEV:5 /L /E /R:0" ist eigentlich alles Kosmetik ...

Grüße
bastla
Member: Fla5hback
Fla5hback Feb 24, 2011 at 09:55:35 (UTC)
Goto Top
Achso... meinst du ?

robocopy xxx /LEV:5 /L /E /R:0 | FIND "%EINGABE%" >dir2.txt

da wird auch nichts durchgeführt... leider.

Habe auch mal versucht über mehrere Ebenen zu suchen ...

robocopy xxx /LEV:1 /L /E /R:0 | FIND "%EINGABE%" >dir2.txt
.
.
robocopy xxx /LEV:5 /L /E /R:0 | FIND "%EINGABE%" >dir2.txt
Member: bastla
bastla Feb 24, 2011 at 10:26:31 (UTC)
Goto Top
Hallo Fla5hback!
Achso... meinst du ?
Gemeint hatte ich:
robocopy xxx C:\ /LEV:5 /L /E /R:0
- damit siehst Du, was "robocopy" insgesamt liefert, während
robocopy xxx C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0
die Ausgabe auf das Wesentliche reduziert.
Dein Batch könnte dann etwa so aussehen:
@echo OFF & setlocal

set /p EINGABE=Bitte Suchbegriff eingeben:
robocopy \\HOME.SUF\DATA C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0 | FIND "%EINGABE%" >dir2.txt  
pause
wobei ich davon augegangen bin, dass Deine Quelle einen UNC-Pfad darstellt und daher mit "\\" (und nicht wie im "dir" nur mit "\") beginnt.

Zum Testen könntest Du noch die Umleitung nach "dir2.txt" weglassen und Dir das Ergebnis gleich direkt anzeigen lassen.

Grüße
bastla
Member: Fla5hback
Fla5hback Feb 24, 2011 at 10:47:21 (UTC)
Goto Top
Juhu... eine Ausgabe hat stattgefunden,

aber er hat auch Pfade auf der 6. Ebene angezeigt... die Suche dauert auch sehr lange.
Hmm, scheine ich mich falsch ausgedrückt zu haben...

Es sollte um der Zeit wegen nur BIS oder NUR "Pfadebene 5" durchsucht werden (dachte das macht der Schalter /LEV:5)...

Im WEB kann ich weder auf englisch noch auf deutsch hilfe hierzu finden.
Member: bastla
bastla Feb 24, 2011 at 11:17:49 (UTC)
Goto Top
Hallo Fla5hback!

Nur als Anmerkung: Die Pfadebene ist relativ zum Ausgangspfad zu betrachten und stellt tatsächlich eine "Pfadtiefe" dar (und entspricht damit "BIS") ...
Verstehe ich Dich jetzt richtig: Es gibt eine jeweils unbekannte Anzahl von Ordnern auf den Ebenen 1 bis 4, die alle Unterordner der Ebene 5 haben können, und nur diese Ebene 5 soll durchsucht werden?

Wenn ja, sollte dennoch die "robocopy"-Variante passen, wobei Du nur die Suche noch auf das Pfadende konzentrieren könntest:
robocopy \\HOME.SUF\DATA C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0 | FINDSTR /I /E "\\%EINGABE%" >dir2.txt
Grüße
bastla
Member: Fla5hback
Fla5hback Feb 24, 2011 at 11:28:03 (UTC)
Goto Top
okay, das bedeutet... da ich als Ausgangspfad \\1\2 angegebene habe müsste er also bis zur 7 Ebene suchen, hab dies richtig vestanden ?

Richtig... der Ordner kann sich auf Ebene 3-5 befinden. Aber "die Meisten Suchergebnisse" waren bisher auf der 5. Ebene...

Im Prinzip will ich unter Win 7 die Suche nach Ordnern in der AD simulieren, ich weiß auch nicht warum MS die Möglichkeit der Suche abgeschaltet hat.

Früher brauchte ich nur \\home.suf\data als Adresse eintragen und einen suchbegriff eingeben, in sekunden hat er mir die Ordner ausgeworfen,,,
Member: Fla5hback
Fla5hback Feb 24, 2011 at 12:03:54 (UTC)
Goto Top
Mitlerweile bin ich aber zufrieden... die Suche in unserem Directory dauert "nur" noch 1-2 Min.

Vielen Dank an euch !!!