Lote para buscar todas las carpetas específicas

Lote para buscar todas las carpetas específicas

Tengo varias carpetas llamadas "temp" y las encontraba, pero cuando ejecuto la aplicación, solo se muestra la primera instancia. ¿Qué se debe hacer para mostrárselo a los demás?

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

Respuesta1

¿Qué se debe hacer para mostrárselo a los demás?

Debe realizar el echointerior del forbucle y el interior de la ifprueba; de lo contrario, solo estará echorealizando la última coincidencia.

Además:

  • No lo usaría pathcomo variable ( PATHes una variable de entorno ya definida).
  • En su lugar , nombre sus variables _somename(el encabezado _evita que los nombres entren en conflicto con las variables de entorno existentes).
  • Es una buena idea usarlo setlocalpara evitar que las variables se filtren al símbolo del sistema principal.
  • Debe usarlo set setlocal enabledelayedexpansionpara que el valor actualizado se echoedite cada vez que se realiza el ciclo.

Pruebe el siguiente archivo por lotes:

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

Otras lecturas

Respuesta2

Si sólo desea enumerarlos, en lugar de visitarlos uno a la vez, utilice los siguientes comandos:

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

Para desglosar esto:

  1. Vaya a la raíz de su unidad (este comando solo escaneará una unidad a la vez).
  2. Utilice el dircomando para buscar cosas llamadas "temp".
  3. Requerir que las cosas tengan el atributo "directorio" (es decir, que sean carpetas).
  4. Muestra la salida en formato "simple", solo los nombres del archivo (o, en este caso, la carpeta).
  5. Comience desde el directorio actual y verifique también todos los subdirectorios (es por eso que ejecutamos el comando desde la raíz de la unidad).
  6. Redirija la salida a un archivo (solo para que sea más fácil leerlo más adelante).
  7. Coloque este archivo en la carpeta Escritorio debajo de su perfil de usuario ( %USERPROFILE%se expande a la ruta a su perfil, algo así como C:\Users\username).
  8. Abra ese archivo que acaba de escribir en su editor .txt predeterminado (generalmente el Bloc de notas).

Resultado de ejemplo al ejecutar estos comandos en mi máquina:

C:\$Recycle.Bin\S-1-5-21-1498554065-3975735064-3637327715-1001\$RBC5Q5G\Temp C:\KDE\Temp C:\Program Files (x86)\Android\android-sdk\temp C:\ProgramData\Microsoft\IdentityCRL\production\temp C:\ProgramData\Microsoft\RAC\Temp C:\Users\All Users\Microsoft\IdentityCRL\production\temp C:\Users\All Users\Microsoft\RAC\Temp C:\Users\cbhacking\AppData\Local\Temp C:\Users\cbhacking\AppData\Local\Google\Chrome\User Data\Default\Extensions\Temp C:\Users\cbhacking\AppData\Local\Microsoft\MSOIdentityCRL\ Production\temp C:\Users\cbhacking\AppData\Local\Microsoft\VisualStudio\14.0\SyncSettings\1733649840\Temp C:\Users\cbhacking\AppData\Local\Microsoft\VisualStudio\vshub\Settings\SyncSettings\1206173302\Temp

información relacionada