Batch 'Verzeichnis suchen'

Von: , Frage gestellt am Di, 13. Sep 2005

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

10 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: Batch 'Verzeichnis suchen'

    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

    • Antwort von nach 3 Stunden 0 hilfreich
      Re^2: Find?

      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

      • Antwort von nach 4 Stunden 0 hilfreich
        Re^3: Find?

        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

        • Antwort von nach 6 Stunden 0 hilfreich
          Re^4: OK...

          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= < c:\temp\pfad.txt & c:\temp\explorer_in %pfad%


          Der Witz ist das "set /p" - wenn das unter NT klappt, ist es geritzt. Ansonsten fällt mir nichts mehr ein :( ...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

          • Antwort von nach 7 Stunden 1 hilfreich
            Re^5: OK...

            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...:(
            die pfad.txt wird nicht erzeugt.

            Gruß

            Mik

            • Antwort von nach 8 Stunden 1 hilfreich
              Re^6: OK...

              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

            • Antwort von nach 23 Stunden 1 hilfreich
              Re^7: OK...

              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

            • Antwort von nach einem Tag 0 hilfreich
              Re^8: Nö

              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

            • Antwort von nach einem Tag 1 hilfreich
              Re^9: sorry

              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



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!