Batch zum Suchen aller bestimmten Ordner

Batch zum Suchen aller bestimmten Ordner

Ich habe mehrere Ordner mit dem Namen „temp“ und würde sie auch finden, aber wenn ich die Anwendung ausführe, wird nur die erste Instanz angezeigt. Was muss ich tun, um die anderen anzuzeigen?

@echo off
for /d /r "c:\" %%i in (temp) do @if exist "%%i" set path=%%i
echo %path%
pause :: Pause the app.

Antwort1

Was muss getan werden, um es den anderen zu zeigen?

Sie müssen dies echoinnerhalb der forSchleife und innerhalb des ifTests durchführen, andernfalls führen Sie nur echodie letzte Übereinstimmung aus.

Zusätzlich:

  • Ich würde es nicht pathals Variable verwenden ( PATHist eine bereits definierte Umgebungsvariable).
  • Benennen Sie stattdessen Ihre Variablen _somename(durch das Voranstellen _wird verhindert, dass es zu Namenskonflikten mit vorhandenen Umgebungsvariablen kommt).
  • Es empfiehlt sich, dies zu verwenden, setlocalum zu verhindern, dass Ihre Variablen an die übergeordnete Eingabeaufforderung weitergegeben werden.
  • Sie müssen es verwenden set setlocal enabledelayedexpansion, damit der aktualisierte Wert echobei jeder Schleife ausgegeben wird.

Versuchen Sie es mit der folgenden Batchdatei:

@echo off
setlocal
setlocal enabledelayedexpansion
@echo off
for /d /r "c:\" %%i in (temp) do (
  @if exist "%%i" (
    @set _variable=%%i
    @echo !_variable!
    )
  )
endlocal

Weitere Informationen

Antwort2

Wenn Sie sie nur auflisten und nicht einzeln aufrufen möchten, verwenden Sie die folgenden Befehle:

cd \
dir temp /a:d /b /s > "%USERPROFILE%\Desktop\tempdirs.txt"
start "" "%USERPROFILE%\Desktop\tempdirs.txt"

Um das aufzuschlüsseln:

  1. Gehen Sie zum Stammverzeichnis Ihres Laufwerks (mit diesem Befehl kann jeweils nur ein Laufwerk gleichzeitig gescannt werden).
  2. Verwenden Sie den dirBefehl, um Dinge mit dem Namen „temp“ zu finden.
  3. Voraussetzung ist, dass die Dinge das Attribut „Verzeichnis“ besitzen (also Ordner sind).
  4. Zeigt die Ausgabe im „nackten“ Format an, also nur die Dateinamen (oder in diesem Fall die Ordnernamen).
  5. Beginnen Sie im aktuellen Verzeichnis und überprüfen Sie auch alle Unterverzeichnisse (aus diesem Grund haben wir den Befehl vom Stammverzeichnis des Laufwerks aus ausgeführt).
  6. Leiten Sie die Ausgabe in eine Datei um (um das spätere Lesen zu erleichtern).
  7. Platzieren Sie diese Datei im Desktop-Ordner unter Ihrem Benutzerprofil ( %USERPROFILE%wird zum Pfad zu Ihrem Profil erweitert, etwa so C:\Users\username).
  8. Öffnen Sie die Datei, die Sie gerade geschrieben haben, in Ihrem standardmäßigen TXT-Editor (normalerweise Notepad).

Beispielergebnis der Ausführung dieser Befehle auf meinem Computer:

C:\$Recycle.Bin\S-1-5-21-1498554065-3975735064-3637327715-1001\$RBC5Q5G\Temp C:\KDE\Temp C:\Programme (x86)\Android\android-sdk\temp C:\ProgramData\Microsoft\IdentityCRL\production\temp C:\ProgramData\Microsoft\RAC\Temp C:\Benutzer\Alle Benutzer\Microsoft\IdentityCRL\production\temp C:\Benutzer\Alle Benutzer\Microsoft\RAC\Temp C:\Benutzer\cbhacking\AppData\Local\Temp C:\Benutzer\cbhacking\AppData\Local\Google\Chrome\Benutzerdaten\Default\Erweiterungen\Temp C:\Benutzer\cbhacking\AppData\Local\Microsoft\MSOIdentityCRL\production\temp C:\Benutzer\cbhacking\AppData\Local\Microsoft\VisualStudio\14.0\SyncSettings\1733649840\Temp C:\Benutzer\cbhacking\AppData\Local\Microsoft\VisualStudio\vshub\Settings\SyncSettings\1206173302\Temp

verwandte Informationen