Ms-Dos - comprobar si el archivo de txt esta vacio

   
Vista:

comprobar si el archivo de txt esta vacio

Publicado por alexis (3 intervenciones) el 13/06/2017 02:43:23
Antes que todo un cordial saludos a todos.

Necesito de su ayuda, no tengo conocimiento en programación..

El BAT que tengo necesito mejorarlo...
El BAT se trata de crear un archivo de texto.txt vacio, para que el usuario con el Bloc de Notas abra el archivo y ponga las URLs manualmente y el usuario guarda los cambios.
El usuario al volver a ejecutar el BAT salga un mensaje, el archivo ya existe, después otro mensaje que diga, desea comprobar si el archivo tiene algo escrito, al comprobar si tiene algo escrito, que sea eliminado.
Estoy haciendo un proyecto con una aplicación que se llama Youtube-dl para descargar musica de YouTube.

NOTA: con este comando me crea el archivo vació pero tiene un peso de 4 bytes y no lo hace con 0 bytes (echo. > listamp3.txt), por este motivo le pido que la comprobación verifique si tiene algo escrito o esta vació el archivo.txt

Este es el código que tengo:
echo. ===============================================================================
@echo off
set file="lista_mp3.txt"

if not exist %file% goto action else (
echo El archivo existe
)

if exist %file% goto check

:action
cls
echo.
echo. No existe
timeout /nobreak /t 3 >nul
cls
echo.
echo. Crear un nuevo archivo de texto
echo.
echo. > lista_mp3.txt
pause >nul

:check
timeout /nobreak /t 2 >nul
cls
echo.
echo. Pulse una tecla para salir
pause >nul

==============================================================================

Gracias le doy a todos por leerlo, espero que me ayuden
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
Imágen de perfil de Antoni Masana

comprobar si el archivo de txt esta vacio

Publicado por Antoni Masana (480 intervenciones) el 13/06/2017 07:47:02
He realizado algunos cambios. Creo que esto es justamente lo que querías.

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
@echo off
set File=Lista_MP3.txt
 
if not exist %File% goto action
 
echo El archivo existe
 
if exist %File% goto check
 
:action
   cls
   echo.
   echo. No existe
   timeout /nobreak /t 3 >nul
   cls
   echo.
   echo. Crear un nuevo archivo de texto
   echo.
   type nul >%File%
   pause >nul
 
:check
   set n=0
   For /F "delims=·" %%a in (%File%) do call :Cuenta
   echo El fichero tiene %n% lineas.
   timeout /nobreak /t 2 >nul
   echo.
   echo. Pulse una tecla para salir
   pause >nul
   goto :EOF
 
:Cuenta
   set /A n=%n% + 1

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

comprobar si el archivo de txt esta vacio

Publicado por alexis (3 intervenciones) el 13/06/2017 16:22:22
Un cordial saludo...
Sr. Antoni,

Esta perfecto tu código, se crear el archivo de texto vacío con cero bytes, y lo mas importante que te dice cuantas lineas tienes escrita.

Solo faltaría la comprobación de peso del archivo, ejemplo si el archivo tiene 0 Bytes no sera eliminado, pero si el archivo tiene un peso de 1KB sera eliminado.

Ejemplo: Cuando el usuario abre con el Bloc de Notas, el archivo de texto creado anteriormente con el BAT , manualmente el usuario agregara las URLs, una de bajo de otra y guardara los cambios, eso significa que el archivo pesa mas de 0 Bytes. cuando el usuario vuelva a ejecutar el BAT el archivo sera eliminado por que pesa mas de 0 Bytes.

Este es el proceso exacto que ejecute batch.

Amigo lo puede mejorar ya que yo no tengo conocimiento de programación...

El tu código agregue unos parámetros. como ejemplo para que vea como quiero que sea el bat.
=========================================================================================================
@echo off
set File=Lista_MP3.txt

if not exist %File% goto action

echo El archivo existe

if exist %File% goto check

:action
cls
echo.
echo. No existe
timeout /nobreak /t 3 >nul
cls
echo.
echo. Se ha creado un archivo de texto.
echo.
type nul >%File%
pause >nul

:check
set n=0
For /F "delims=·" %%a in (%File%) do call :Cuenta
echo El fichero tiene %n% lineas.
timeout /nobreak /t 2 >nul
echo.
:: Codigo para comparar y eliminar archivo.
For %%f In (%file%) do (If %%~zf==0 (echo %%f esta vacio)else echo %%f no esta vacio)
For %%f In (%file%) do (If %%~zf GTR 0 DEL "%%f")
echo.
echo. Pulse una tecla para salir
pause >nul
goto :EOF

:Cuenta
set /A n=%n% + 1
========================================================================================================

Gracias amigo, es conocedor de la materia...
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

comprobar si el archivo de txt esta vacio

Publicado por Antoni Masana (480 intervenciones) el 14/06/2017 18:53:47
He realizado unos pocos cambios
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
@echo off
set File=Lista_MP3.txt
 
if not exist %File% goto action
 
echo El archivo existe
 
if exist %File% goto check
 
:action
   echo.
   echo.No existe
   timeout /nobreak /t 3 >nul
   echo.
   echo.Se ha creado un archivo de texto.
   echo.
   type nul >%File%
   echo.Pulse una tecla para continuar.
   pause >nul
   echo.
 
:check
   set n=0
   For /F "delims=·" %%a in (%File%) do call :Cuenta
   echo.El fichero tiene %n% lineas.
   timeout /nobreak /t 2 >nul
   echo.
 
: ---- Codigo para comparar y eliminar archivo.
 
   For %%f In (%file%) do If %%~zf==0 ( echo %%f esta vacio
                                        goto Fin
                                      )
   echo.%File% no esta vacio
   DEL %File%
:Fin
   echo.
   echo.Pulse una tecla para salir
   pause >nul
goto :EOF
 
:Cuenta
set /A n=%n% + 1


ESTE ES EL RESULTADO

Paso 1 - El fichero no existe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
C:\Tmp>lista
 
No existe
 
Se ha creado un archivo de texto.
 
Pulse una tecla para continuar.
 
El fichero tiene 0 lineas.
 
Lista_MP3.txt esta vacio
 
Pulse una tecla para salir
 
C:\Tmp>


Paso 2 - El fichero existe y esta vacío
1
2
3
4
5
6
7
8
9
C:\Tmp>lista
El archivo existe
El fichero tiene 0 lineas.
 
Lista_MP3.txt esta vacio
 
Pulse una tecla para salir
 
C:\Tmp>


Paso 3 - El fichero existe y tiene datos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
C:\Tmp>lista
El archivo existe
El fichero tiene 3 lineas.
 
Lista_MP3.txt no esta vacio
 
Pulse una tecla para salir
 
C:\Tmp>dir Lista_MP3.txt
 El volumen de la unidad C es Ant.Masana
 El número de serie del volumen es: A877-9E76
 
 Directorio de C:\Tmp
 
No se encuentra el archivo
 
C:\Tmp>

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

comprobar si el archivo de txt esta vacio

Publicado por alexis (3 intervenciones) el 23/06/2017 18:12:15
Antes que todo un cordial saludo

Sr. Antoni Masana

Gracias por responder todas mis inquietudes, y ayudarme con el código del proyecto que estoy haciendo, me ha solucionado y puedo dar por finalizar el proyecto.

Lo felicito por su pedagogía y su gran colaboración en los FOROS.
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
Revisar política de publicidad