
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 echo
innerhalb der for
Schleife und innerhalb des if
Tests durchführen, andernfalls führen Sie nur echo
die letzte Übereinstimmung aus.
Zusätzlich:
- Ich würde es nicht
path
als Variable verwenden (PATH
ist 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,
setlocal
um zu verhindern, dass Ihre Variablen an die übergeordnete Eingabeaufforderung weitergegeben werden. - Sie müssen es verwenden
set setlocal enabledelayedexpansion
, damit der aktualisierte Wertecho
bei 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
- Ein AZ-Index der Windows CMD-Befehlszeile- Ein hervorragendes Nachschlagewerk zu allem, was mit der Windows-Eingabeaufforderung zu tun hat.
- lokal festlegen- Legen Sie Optionen fest, um die Sichtbarkeit von Umgebungsvariablen in einer Batchdatei zu steuern.
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:
- Gehen Sie zum Stammverzeichnis Ihres Laufwerks (mit diesem Befehl kann jeweils nur ein Laufwerk gleichzeitig gescannt werden).
- Verwenden Sie den
dir
Befehl, um Dinge mit dem Namen „temp“ zu finden. - Voraussetzung ist, dass die Dinge das Attribut „Verzeichnis“ besitzen (also Ordner sind).
- Zeigt die Ausgabe im „nackten“ Format an, also nur die Dateinamen (oder in diesem Fall die Ordnernamen).
- 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).
- Leiten Sie die Ausgabe in eine Datei um (um das spätere Lesen zu erleichtern).
- Platzieren Sie diese Datei im Desktop-Ordner unter Ihrem Benutzerprofil (
%USERPROFILE%
wird zum Pfad zu Ihrem Profil erweitert, etwa soC:\Users\username
). - Ö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