
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 echo
interior del for
bucle y el interior de la if
prueba; de lo contrario, solo estará echo
realizando la última coincidencia.
Además:
- No lo usaría
path
como variable (PATH
es 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
setlocal
para evitar que las variables se filtren al símbolo del sistema principal. - Debe usarlo
set setlocal enabledelayedexpansion
para que el valor actualizado seecho
edite 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
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- establecer local- Establecer opciones para controlar la visibilidad de las variables de entorno en un archivo por lotes.
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:
- Vaya a la raíz de su unidad (este comando solo escaneará una unidad a la vez).
- Utilice el
dir
comando para buscar cosas llamadas "temp". - Requerir que las cosas tengan el atributo "directorio" (es decir, que sean carpetas).
- Muestra la salida en formato "simple", solo los nombres del archivo (o, en este caso, la carpeta).
- 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).
- Redirija la salida a un archivo (solo para que sea más fácil leerlo más adelante).
- Coloque este archivo en la carpeta Escritorio debajo de su perfil de usuario (
%USERPROFILE%
se expande a la ruta a su perfil, algo así comoC:\Users\username
). - 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