Batch 'Verzeichnis suchen'

Hallo,

ich möchte mir eine batch Datei auf windows NT4 erstellen mit folgender Funktion:

  1. Suche in einem Verzeichnis z.B. „C:\test“ das Unterverzeichnis „xyz1234“ was in den Benennung eine bestimmte Zeichenfolge „1234“ hat (die Zeichenfolge bleibt erhalten, aber der Zusatz xyz ändert sich gelegentlich)
  2. Wechsel in das gefundene Verzeichnis.

Ich weiss dass der explorer diese Suchfunktion hat, aber ein batch wäre hier eine Arbeitserleichterung…

Wer kann mir einen Tip geben ?

Gruß

Mik

  1. Suche in einem Verzeichnis z.B. „C:\test“ das
    Unterverzeichnis „xyz1234“ was in den Benennung eine bestimmte
    Zeichenfolge „1234“ hat (die Zeichenfolge bleibt erhalten,
    aber der Zusatz xyz ändert sich gelegentlich)

Anscheinend geht das gar nicht mit den batch Kommandos,
die Befehle „find“ und „findstr“ suchen bzw. durchsuchen nur Dateien, für das Suchen von Verzeichnissen gibt es keinen Befehl! oder doch ?

Gruß

Mik

Mahlzeit,

Anscheinend geht das gar nicht mit den batch Kommandos,

Doch!

die Befehle „find“ und „findstr“ suchen bzw. durchsuchen nur
Dateien, für das Suchen von Verzeichnissen gibt es keinen
Befehl! oder doch ?

Der nennt sich „dir“! „find“ bzw. „findstr“ suchen in Dateien.

Ich weiß nicht, welche Windows-Version du verwendest (wäre eine Anregung für die Zukunft: immer mit angeben!), aber du kannst es unter XP bzw. Win2k so erreichen:

cd /d c:\test & dir /s /ad /b \*1234

Ein bißchen schwieriger wird der Wechsel in das Verzeichnis. Am besten vielleicht so:

cd /d c:\test & for /d %i in (\*1234) do cd /d %i

Gruß

Sancho

Hallo Sancho,

vielen Dank für Deine Antwort

Ich weiß nicht, welche Windows-Version du verwendest (wäre
eine Anregung für die Zukunft: immer mit angeben!),

war angegeben: …batch Datei auf windows NT4 erstellen mit folgender Funktion…

kannst es unter XP bzw. Win2k so erreichen:
cd /d c:\test & dir /s /ad /b *1234

das funktioniert soweit, d.h. das Verzeichnis wird gefunden, das cmd window bleibt stehen => wenn jetzt ein Wechsel in das Verzeichnis mit dem explorer erfolgen würde, dann wäre das perfekt.
das müsste doch mit dem „start“ Befehl funktionieren?

…Wechsel in das Verzeichnis. Am besten vielleicht so:
cd /d c:\test & for /d %i in (*1234) do cd /d %i

das hat nicht funktioniert.

Gruß

Mik

Mahlzeit,

Ich weiß nicht, welche Windows-Version du verwendest (wäre
eine Anregung für die Zukunft: immer mit angeben!),

war angegeben: …batch Datei auf windows NT4 erstellen mit
folgender Funktion…

Ups, sorry, hab ich übersehen…

kannst es unter XP bzw. Win2k so erreichen:
cd /d c:\test & dir /s /ad /b *1234

das funktioniert soweit, d.h. das Verzeichnis wird gefunden,
das cmd window bleibt stehen => wenn jetzt ein Wechsel in
das Verzeichnis mit dem explorer erfolgen würde, dann wäre das
perfekt.

Hmmm… mach doch folgendes (ich hab hier keine NT-Maschine, aber es müßte klappen):

Editier eine Datei explorer_in.cmd und leg sie z.B. auf c:\temp ab:

cd /d %1 & explorer .

Dann gib folgendes an:

cd /d c:\test & set execpfad=dir /s /ad /b \*1234 & %execpfad% \> c:\temp\pfad.txt & set /p pfad= 

Der Witz ist das "set /p" - wenn das unter NT klappt, ist es geritzt. Ansonsten fällt mir nichts mehr ein :frowning:



> > ...Wechsel in das Verzeichnis. Am besten vielleicht so:  
> > cd /d c:\test & for /d %i in (\*1234) do cd /d %i
> 
> das hat nicht funktioniert.


Ja, das geht erst ab Win2K...

Gruß

Sancho

Hallo Sancho

Editier eine Datei explorer_in.cmd und leg sie z.B. auf
c:\temp ab: cd /d %1 & explorer .

Funktioniert für sich = explorer wird geöffnet

Dann gib folgendes an:
cd /d c:\test & set execpfad=dir /s /ad /b *1234 &
%execpfad% > c:\temp\pfad.txt & set /p pfad=
c:\temp\pfad.txt & c:\temp\explorer_in %pfad%

schade funktioniert nicht ganz, das cmd fenster blinkt einmal kurz auf, das wars…:frowning:
die pfad.txt wird nicht erzeugt.

Gruß

Mik

Mahlzeit,

set /p pfad=

also, das kann NT4 noch nicht. Aber es ist einfacher:

cd /d c:\test & for /d %i in (\*1234) do cd /d %i & explorer .

Das funktioniert (eben auf einer alten Kiste in Nürnberg ausprobiert).

Wenn das bei dir nicht tut, öffne erstmal ein CMD-Fenster und gib die Zeile da erst auf - da siehst du wenigstens die Fehlermeldung auf dem Bildschirm, bevor das Fenster geschlossen wird.

Gruß

Sancho

Hallo Sancho,

cd /d c:\test & for /d %i in (*1234) do cd /d %i & explorer

hier funktioniert nur der erste Teil, also cd /d c:\test

Wenn das bei dir nicht tut, öffne erstmal ein CMD-Fenster und
gib die Zeile da erst auf - da siehst du wenigstens die
Fehlermeldung auf dem Bildschirm, bevor das Fenster
geschlossen wird.

eine Fehlermeldung wird nicht ausgegeben, die for-Anweisung wird nicht ausgeführt.
Die Dateinamen in dem Such-Verzeichnis haben alle mehr als 8 Zeichen und Leerzeichen ! aber das müsste mit „*1234“ funktionieren.
Ich werde mir die Befehsdokumentation über „help“ anschauen, vielleicht gibt es noch einiges zu beachten.

Gruß

Michael

Hi,

cd /d c:\test & for /d %i in (*1234) do cd /d %i & explorer

hier funktioniert nur der erste Teil, also cd /d c:\test

Hey, wenn zitiert, dann richtig: da stand

cd /d c:\test & for /d %i in (\*1234) do cd /d %i & explorer **.**

also mit einem Punkt am Ende.

eine Fehlermeldung wird nicht ausgegeben, die for-Anweisung
wird nicht ausgeführt.

Dann wird kein Verzeichnis mit dem gesuchten Namen gefunden.

Die Dateinamen in dem Such-Verzeichnis haben alle mehr als 8
Zeichen und Leerzeichen ! aber das müsste mit „*1234“
funktionieren.

Sags doch gleich!

cd /d c:\test & for /d %i in ("\*12 34") do cd /d "%i" & explorer .

Aber halt: du sprichst von Dateien, oben sprachst du von Verzeichnissen. Was nun? Hier suche ich im Verzeichnis c:\test nach einem (unter-)Verzeichnis nach Namensmuster „*12 34“ und öffne dort den Explorer!
Das war deine Aufgabenstellung:
1. Suche in einem Verzeichnis z.B. „C:\test“ das Unterverzeichnis „xyz1234“

Ich werde mir die Befehsdokumentation über „help“ anschauen,
vielleicht gibt es noch einiges zu beachten.

Nö, mußt du nicht. Bei mir funktioniert das ausgezeichnet, auch mit Leer- und Sonderzeichen im Verzeichnisnamen.

Warum postest du nicht die konkrete Aufgabenstellung?

Gruß

Sancho

Hallo Sancho,

Hey, wenn zitiert, dann richtig: da stand

cd /d c:\test &
for /d %i in (*1234) do cd /d %i & explorer .

also
mit einem Punkt am Ende.

sorry, den Punkt habe ich übersehen…

Dann wird kein Verzeichnis mit dem gesuchten Namen gefunden.

Die Dateinamen in dem Such-Verzeichnis haben alle mehr als 8
Zeichen und Leerzeichen ! aber das müsste mit „*1234“
funktionieren.

Sags doch gleich!

cd /d c:\test & for /d %i in ("*12 34")
do cd /d „%i“ & explorer .

Aber halt: du sprichst von
Dateien, oben sprachst du von Verzeichnissen. Was nun?

sorry, ich meine natürlich Verzeichnisse…

Nö, mußt du nicht. Bei mir funktioniert das ausgezeichnet,
auch mit Leer- und Sonderzeichen im Verzeichnisnamen.

tja, bei mir klappt das immer noch nicht. Ich werde das ganze wegen Zeitmangel erstmal zu Seite legen müssen,

vielen Dank für Deine Hilfe,

Gruß

Mik

Hi,

tja, bei mir klappt das immer noch nicht. Ich werde das ganze
wegen Zeitmangel erstmal zu Seite legen müssen,

wenn das dann mal klappen sollte, gib dann eine kurze Erklärung, was das Problem war!

Gruß

Sancho