Ms-Dos - MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

 
Vista:
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por msslobaton (10 intervenciones) el 15/12/2019 22:19:49
Hola a todos , necesito realizar un .bat que recorra unas carpetas y me diga cuales tienen archivos con fecha de mas de un dia.

alguna idea de como puedo hacerlo?

gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 16/12/2019 00:35:36
Hice un for basico a ver se me funciona un recorrido pero aun asi no funciona, soy nueva en este tema : :(

1
2
3
4
5
6
7
For %%a in ("1,2,3") do (
 
echo %a%
 
)
 
pause

error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 16/12/2019 19:46:28
He realizado este sencillo código que recorre todo el árbol de directorio desde donde lo ejecutes y te muestra el nombre del directorio si hay ficheros que no son de hoy.

Como no se que quieres decir con "ficheros con más de un día" porque los ficheros solo tienes una fecha de modificación y no varias fechas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
SET Home=%CD%
DIR /S /B /A:D >Direc.tmp
FOR /F "delims=*" %%a in (Direc.tmp) do Call :Files "%%a"
CD %Home%
del Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    set SW=0
    cd "%Dir%"
    for %%b in (*.*) do call :Validar %%~tb
    cd %Home%
    goto :EOF
 
:Validar
    if %1 == %Date% goto :EOF
    if %SW% == 1    goto :EOF
    set SW=1
    echo %Dir%

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 16/12/2019 20:51:12
Hola, gracias por responder :

realicé una modificación pero no me funciona bien,

la idea es dentro de una carpeta van a existir mas carpetas con o sin archivos , la idea es evaluar los archivos que a la fecha tengan mas de 1 dia de creados y me imprima el Nombre de la carpeta que tenga esos archivos, ( el nombre de los archivos No los necesito).

pero solo me valida dentro de la carpeta que se llama ejemplo , y ademas solo valida un archivo , y hay mas , no se que estará mal :( :( :(

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
SET Home=%CD%
rem DIR /S /B /A D:\ejemplo
FOR /F "delims=*" %%a in ('Dir  /b  /A D:\ejemplo') do Call :Files "%%a"
CD %Home%
rem del Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    set SW=0
    cd "%Dir%"
    for %%b in (*.*) do call :Validar %%~tb
    cd %Home%
    goto :EOF
 
:Validar
    if %1 == %Date% goto :EOF
    if %SW% == 1    goto :EOF
    set SW=1
    echo %Dir%
	pause

mensaje-cmd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 16/12/2019 21:04:44
Tu modificación es la línea 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
CD /D d:\ejemplo
set Home=%CD%
DIR /S /B /A:D >%Temp%\Direc.tmp
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
CD /D %Home%
DEL %Temp%\Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    set SW=0
    CD /D "%Dir%"
    FOR %%b in (*.*) do call :Validar %%~tb
    CD /D %Home%
    goto :EOF
 
:Validar
    if %1 == %Date% goto :EOF
    if %SW% == 1    goto :EOF
    set SW=1
    echo %Dir%

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 16/12/2019 21:29:49
Tengo unas dudas :

1. por que usas la palabra DEL ? no deseo borrar archivos.
2. que funcion cumple DIR /S /B /A:D >%Temp%\Direc.tmp ese parametro revisará todos los directorios?
3. lo acabo de ejecutar pero no me funcionó.

no-funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 16/12/2019 23:37:09
El DIR crea un listado de todos los directorios y sub-directorios de sitio donde esta y lo guarda en un fichero temporal que utiliza el FOR y una vez finalizado borra el fichero.

Te pongo el BAT comentado paso a paso

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
: --- hace que no se vean los comando ni el mismo al ejecutar
@echo off
: --- Cambia de directorio. El parametro /D es para cambiar de disco
CD /D d:\ejemplo
: --- Guarda directorio actual
set Home=%CD%
: --- Crea un fichero con la estructutra de directorios que cuelgan de la
:     posicion actual y lo guarda en un fichero temporal.
:     Cada linea es una ruta complerta desde la raiz, es decir desde D:\
DIR /S /B /A:D >%Temp%\Direc.tmp
: --- Lee el fichero temporal y para cada linea llama a la etiqueta Files
:     Pasa como parametro la ruta leida
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
: --- Se coloca en el directorio de inicio, en este caso D:\EJEMPLO
CD /D %Home%
: --- Borra el fichero temporal creado con el DIR
DEL %Temp%\Direc.tmp
: --- Finaliza el BAT
goto :EOF
 
:Files
    : --- Guarda el la variable DIR la ruta
    set Dir=%1
    : --- Le quita las comollas. Ver en la linea del  FOR "%%a"
    set Dir=%Dir:~1,-1%
    : --- Variable para mostrar solo una vez el nombre del directorio
    set SW=0
    : --- Cambia al nuevo directorio
    CD /D "%Dir%"
    : --- Lee todos los ficheros. Llama a la etiqueta Validar y le pasa la fecha
    FOR %%b in (*.*) do call :Validar %%~tb
    : --- Se coloca en el directorio de inicio, en este caso D:\EJEMPLO
    CD /D %Home%
    : --- Regresa al FOR
    goto :EOF
 
:Validar
    : --- Si la fecha es la misma del sistema sale
    if %1 == %Date% goto :EOF
    : --- Si ya mostro el directorio sale
    if %SW% == 1    goto :EOF
    : --- Casmbia el valor de SW
    set SW=1
    : --- Muestra el nombre del directorio
    echo %Dir%
    : --- Regresa al FOR


Si no funciona prueba ejecutar estas dos lineas en negrita:

1
2
C:\> CD /D D:\Ejemplo
D:\Ejemplo> DIR /S /B /A:D

El primer debe cambiar el prompt y el segundo mostrarte una lista de directorios, si no salen es que no hay. Y no debería salir ningún error.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 17/12/2019 05:00:33
Hola, con el ultimo ejemplo que publicas me funciona pero parcialmente, me está mostrando ltodos los directorios que tienen archivos , pero no valida si los archivos tiene mas de un día de creación :(
todo-lo-que-tenga-archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 17/12/2019 15:55:14
Si que funciona y lo hace bien, bueno bien para lo que yo entiendo que ha de hacer.

Me explico El primer FOR recorre todos los directorios y el segundo FOR todos los ficheros de cada directorio.
Se encuentra algún fichero que no tenga fecha de hoy, la fecha del sistema, muestra el directorio.
Si el directorio no tiene ficheros no lo muestra.

Prueba a añadir estas líneas al principio del BAT

1
2
3
4
5
6
7
8
9
: --- hace que no se vean los comando ni el mismo al ejecutar
@echo off
echo La fecha actual es: %Date%
: --- Cambia de directorio. El parametro /D es para cambiar de disco
CD /D d:\ejemplo
DIR /S
echo on
: --- Guarda directorio actual
set Home=%CD%

y ahora ejecuta el bat asi suponiendo que el BAT se llama PRUEBA.BAT

1
C:> PRUEBA >Trace.txt

Y me envías el fichero Trace.txt para ver que es lo que esta fallando.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 17/12/2019 20:24:46
Hola, efectivamente asi debe funcionar , validar que archivos no tienen fecha de hoy e imprimir el directorio.
sin embargo me esta imprimiendo todas las rutas , y eso que cree archivos el día de hoy.

Adjunto el trace.txt .

agradezco tu orientación .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 17/12/2019 20:59:33
Ya he visto el problema.

La causa de que no funcionase es las diferentes formas que tiene de presentar la fecha el MS-DOS de Windows según la configuración que se tenga.

Por ejemplo en mi ordenador al hacer esto veo este resultado:

1
2
echo %Date%
17/12/2019

En tu equipo se ve este resultado:

1
2
echo %Date%
ma. 17/12/2019

Al hacer un DIR en mi equipo:

1
2
3
4
5
17/12/2019  11:52    <DIR>          .
17/12/2019  11:52    <DIR>          ..
17/12/2019  11:51    <DIR>          ejemplo2
17/12/2019  12:00    <DIR>          ejemplo3
17/12/2019  11:58    <DIR>          ejemplo4

En tu equipo:

1
2
3
4
5
17/12/2019  11:52 a. m.    <DIR>          .
17/12/2019  11:52 a. m.    <DIR>          ..
17/12/2019  11:51 a. m.    <DIR>          ejemplo2
17/12/2019  12:00 p. m.    <DIR>          ejemplo3
17/12/2019  11:58 a. m.    <DIR>          ejemplo4

Para el correcto funcionamiento te planteo dos soluciones:

Opción - 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off
CD /D d:\ejemplo
set Home=%CD%
DIR /S /B /A:D >%Temp%\Direc.tmp
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
CD /D %Home%
DEL %Temp%\Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    set SW=0
    CD /D "%Dir%"
    FOR %%b in (*.*) do call :Validar %%~tb
    CD /D %Home%
    goto :EOF
 
:Validar
    if %1 == %Date:~-10% goto :EOF
    if %SW% == 1         goto :EOF
    set SW=1
    echo %Dir%
    goto :EOF

Opción - 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
CD /D d:\ejemplo
set Home=%CD%
DIR /S /B /A:D >%Temp%\Direc.tmp
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
CD /D %Home%
DEL %Temp%\Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    set SW=0
    CD /D "%Dir%"
    FOR %%b in (*.*) do call :Validar %%~tb
    CD /D %Home%
    goto :EOF
 
:Validar
    echo %Date% | FindStr %1 >nul 2>&1
    if %ErrorLevel% EQU 0 goto :EOF
    if %SW% == 1          goto :EOF
    set SW=1
    echo %Dir%
    goto :EOF


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 18/12/2019 20:47:28
Hola Sr Antoni , le cuento que realicé la implementación de las dos opciones y ahora las consolas no muestran , se ve como que intentaran ejecutarse pero se cierran de inmediato , le adjunto imagen de las dos implementaciones realizadas sin exito :(
implementacion-1
implementacion-2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 18/12/2019 20:53:56
Probemos esto otra vez a ver que le pasa ahora con los últimos cambios y si es posible prueba las dos opciones.

Prueba a añadir estas líneas al principio del BAT


1
2
3
4
5
6
7
8
9
: --- hace que no se vean los comando ni el mismo al ejecutar
@echo off
echo La fecha actual es: %Date%
: --- Cambia de directorio. El parametro /D es para cambiar de disco
CD /D d:\ejemplo
DIR /S
echo on
: --- Guarda directorio actual
set Home=%CD%

Y añade esto:

1
2
3
4
5
6
7
:Validar
    echo (%0) - (%1) - (%2) - (%3) - (%4) - (%5) - (%*)
    if %1 == %Date:~-10% goto :EOF
    if %SW% == 1         goto :EOF
    set SW=1
    echo %Dir%
    goto :EOF

y ahora ejecuta el bat asi suponiendo que el BAT se llama PRUEBA.BAT

1
C:> PRUEBA >Trace.txt

Y me envías el fichero Trace.txt para ver que es lo que esta fallando.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 19/12/2019 03:02:17
Hola , aqui el archivo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 19/12/2019 15:28:22
El proceso funciona correctamente.
El único problema es que no deja ver el resultado.
Es la costumbre de ejecutarlos desde una ventana de MSDOS, que al finalizar no se cierra y puedo ver el resultado.
Solo hace falta una pausa antes de finalizar.

1
2
3
4
5
6
7
8
9
10
@echo off
CD /D d:\ejemplo
set Home=%CD%
DIR /S /B /A:D >%Temp%\Direc.tmp
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
CD /D %Home%
DEL %Temp%\Direc.tmp
echo.
pause
goto :EOF

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 23/12/2019 02:47:26
FUNCIONO!!!!

adicional quisiera saber como puedo omitir que se validen los archivos por ejemplo de las carpetas que se llamen "prueba", pense que con un if pero no me funcionó

if %%b == archive goto :EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 23/12/2019 08:32:25
Añade las dos lineas en negrita (Líneas 13 y 14):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo off
CD /D d:\ejemplo
set Home=%CD%
DIR /S /B /A:D >%Temp%\Direc.tmp
FOR /F "delims=*" %%a in (%Temp%\Direc.tmp) do Call :Files "%%a"
CD /D %Home%
DEL %Temp%\Direc.tmp
goto :EOF
 
:Files
    set Dir=%1
    set Dir=%Dir:~1,-1%
    echo %Dir% | FindStr /i Prueba >nul 2>&1
    if %ErrorLevel% EQU 0 goto :EOF
    set SW=0
    CD /D "%Dir%"
    FOR %%b in (*.*) do call :Validar %%~tb
    CD /D %Home%
    goto :EOF
 
:Validar
    echo %Date% | FindStr %1 >nul 2>&1
    if %ErrorLevel% EQU 0 goto :EOF
    if %SW% == 1          goto :EOF
    set SW=1
    echo %Dir%
    goto :EOF


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por mss (10 intervenciones) el 27/12/2019 21:35:06
Quisiera entender que realiza esta instrucción?

echo %Dir% | FindStr /i Prueba >nul 2>&1


a que equivalen los números 2 y el 1? se puede añadir otros nombres de carpetas para excluir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

MOSTRAR LISTA DE CARPETAS QUE TENGAN ARCHIVOS CON FECHA DE UN DIA POR CMD

Publicado por Antoni Masana (811 intervenciones) el 28/12/2019 10:02:42
Para explicar que significan estos dos números hay que entender como funcionan los programas de consola, tanto en MS-DOS como en UNIX, LINUX y otros sistemas operativos.

Los programas, tantos ejecutables como script, tienen tres canales de comunicación estandar que son Entrada, Salida y Error.

¿Que son?

Son los canales por los que se comunican los programas. Veamos un ejemplo:

1
DEL *.*

Al realizar esta comando el programa pregunta si esta seguro de querer borrar todos los ficheros, este es el canal de Entrada se puede pulsar una S o una N para responder pero también se puede hacer otra cosa.

1
ECHO S | DEL *.*

El comando ECHO de envía la respuesta al DEL. Otra forma de hacerlo es así:

1
DEL *.*  < Conf.txt
o
1
DEL *.* 0< Conf.txt

El fichero Conf.txt debe contener una S o una N como respuesta al DEL y es exactamente igual los casos anteriores.

Si haces las pruebas veras que al realizar el segundo ejemplo sale una linea más o menos asi:

1
2
C:\Tmp>echo N | del *.*
C:\Tmp\*.*, ¿Está seguro (S/N)? N

La segunda linea sale por la Salida estandar y se evita verla en pantalla con un >NUL o 1>NUL para que no se guarde o un fichero o pasando el resultado a otro proceso con la barra |

Si ejecutas el ultimo ejemplo del DEL veras que salen más lineas:

1
2
3
4
C:\Tmp>del *.* 0<Conf.txt
C:\Tmp\*.*, ¿Está seguro (S/N)? S
C:\Tmp\Cont.txt
El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso.

La ultima sale por la Salida Estandar de ERROR y es un mensaje de error y te informa que no puede borrar un fichero porque esta en uso.
Para que no lo muestre por pantalla se utiliza la opción 2> por ejemplo para que no lo guarde 2>NUL o un fichero.

Y ahora viene el porque del 2>&1 si quedemos que los errores se guarden en el mismo sitio que la salida estandar se pone &1.

En el comando que te puse hace exactamente lo mismo que esto:

1
echo %Dir% | FindStr /i Prueba >nul 2>nul

Espero haberme explicado con claridad

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar