Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Nilrac en 24 Julio 2010, 02:30 AM

Título: [Batch]Numero de archivos enconrtrados
Publicado por: Nilrac en 24 Julio 2010, 02:30 AM
Hola !

Quisiera que me ayudaran a completar el codigo

echo.>archivo.txt

for %%a in (

Varios archivos

) do (
       if exist %%a (
                            Echo %%a se encontro >> archivo.txt
                            ::COlocar aquí el numero de archivos que se encontraron
)


Es decir, si encontro 2 archivos que especifique en archivo.txt

Gracias
Título: Re: Numero de archivos enconrtrados
Publicado por: maxx93 en 24 Julio 2010, 03:44 AM
Modifique un poco el code...


setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in (lista.txt) do (if exist %%a (set /a n=!n!+1&echo %%a se encontro >> archivo.txt))
echo -------------------------------->>archivo.txt
echo Se encontraron %n% archivos>>archivo.txt


En lista.txt estan las rutas de los archivos
Salu2
Título: Re: Numero de archivos enconrtrados
Publicado por: leogtz en 24 Julio 2010, 04:00 AM
Cita de: maxx93 en 24 Julio 2010, 03:44 AM
Modifique un poco el code...


setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in (lista.txt) do (if exist %%a (set /a n=!n!+1&echo %%a se encontro >> archivo.txt))
echo -------------------------------->>archivo.txt
echo Se encontraron %n% archivos>>archivo.txt


En lista.txt estan las rutas de los archivos
Salu2

¿Dónde quedó el concepto de indentación?
Es un mal hábito de programación poner varias líneas de código en una sola, sacrificas las el número de líneas por la legibilidad.

Quedaría mucho mejor así:
Código (dos) [Seleccionar]

set /a n=0
for /f "tokens=*" %%_ in (lista.txt) do (
if exist "%%_" (
set /a n+=1
echo Se encontró [%%_] >> "archivo.txt"
)
)
echo Se encontraron %n% archivos >> "archivo.txt"
Título: Re: Numero de archivos enconrtrados
Publicado por: maxx93 en 24 Julio 2010, 06:40 AM
Cita de: Leo Gutiérrez. en 24 Julio 2010, 04:00 AM
Quedaría mucho mejor así:
Código (dos) [Seleccionar]

set /a n=0
for /f "tokens=*" %%_ in (lista.txt) do (
if exist "%%_" (
set /a n+=1
echo Se encontro [%%_] >> "archivo.txt"
)
echo Se encontraron %n% archivos >> "archivo.txt"


En la anteúltima linea falto cerrar el ) del for. Salu2.


Editado 24/07/2010 19:01 (GMT -03:00)...
Cita de: Leo Gutiérrez. en 24 Julio 2010, 04:00 AM
Quedaría mucho mejor así:
Código (dos) [Seleccionar]

set /a n=0
for /f "tokens=*" %%_ in (lista.txt) do (
if exist "%%_" (
set /a n+=1
echo Se encontró [%%_] >> "archivo.txt"
)
)
echo Se encontraron %n% archivos >> "archivo.txt"


Ahora esta mejor... Salu2.
Título: Re: Numero de archivos enconrtrados
Publicado por: Nilrac en 25 Julio 2010, 05:16 AM
El code no me funciona
Título: Re: Numero de archivos enconrtrados
Publicado por: maxx93 en 25 Julio 2010, 19:22 PM
Crea un archivo lista.txt con las rutas de los archivos, despues fijate ultilizando mi code...
Cita de: maxx93 en 24 Julio 2010, 03:44 AM

setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in (lista.txt) do (if exist %%a (set /a n=!n!+1&echo %%a se encontro >> archivo.txt))
echo -------------------------------->>archivo.txt
echo Se encontraron %n% archivos>>archivo.txt


Salu2.
Título: Re: Numero de archivos enconrtrados
Publicado por: Nilrac en 25 Julio 2010, 20:06 PM
Perfecto Maxx93  ;-)

Ahora tengo una simple duda:

para desactivar el setlocal enabledelayedexpansion es con setlocal disabledelayedexpansion ?
Título: Re: Numero de archivos enconrtrados
Publicado por: FranciskoAsdf en 25 Julio 2010, 22:22 PM
creo que es con end local
Título: Re: Numero de archivos enconrtrados
Publicado por: leogtz en 25 Julio 2010, 22:43 PM
http://ss64.com/nt/endlocal.html (http://ss64.com/nt/endlocal.html)