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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161476
Url: https://administrator.de/forum/via-batch-ein-ad-netzwerk-nach-ordnername-durchsuchen-161476.html
Ausgedruckt am: 25.04.2025 um 19:04 Uhr
16 Kommentare
Neuester Kommentar
Hallo @Fla5hback,
Probier mal statt
Gruß
Snow
PS: ist dein /A-Switch im
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?
hmm stimmt. Hatte nicht bedacht, dass 
Aber mit
Deine 'kryptischen Zeichen' sind übrigens Unicode-Character. Mit
Was du machen könntest:
Du legst dir ein Offline-Suchverzeichnis an. Also eine Textdatei, in der die Ausgabe eines kompletten
Gruß
Snow
tree
garnicht den kompletten Pfad anzeigt, obwohl das für das Ordnersuchen ja doch sehr nützlich wäre 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
@snow
Grüße
bastla
ist dein /A-Switch im
Der ist nur nicht komplett - eigentlich wäre hier "/ad" gefragt ...dir
-Befehl nicht überflüssig?Grüße
bastla
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 "
Wegen des Schalters "/L" wird das Kopieren nur simuliert ...
[Edit]
[/Edit]
Grüße
bastla
Die von Dir gewünschte Beschränkung der Suchtiefe würde ich, speziell wenn es schnell gehen soll, über "
robocopy
" realisieren - zBrobocopy \\HOME.SUF\DATA C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0 | FIND "%EINGABE%" >dir2.txt
[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
Hallo Fla5hback!
Grüße
bastla
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
Hallo Fla5hback!
- damit siehst Du, was "
die Ausgabe auf das Wesentliche reduziert.
Dein Batch könnte dann etwa so aussehen:
wobei ich davon augegangen bin, dass Deine Quelle einen UNC-Pfad darstellt und daher mit "\\" (und nicht wie im "
Zum Testen könntest Du noch die Umleitung nach "dir2.txt" weglassen und Dir das Ergebnis gleich direkt anzeigen lassen.
Grüße
bastla
Achso... meinst du ?
Gemeint hatte ich:robocopy xxx C:\ /LEV:5 /L /E /R:0
robocopy
" insgesamt liefert, währendrobocopy xxx C:\ /LEV:5 /L /E /XX /FP /NC /NS /NFL /NJH /NJS /R:0
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
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
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 "
Grüße
bastla
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
bastla