Duda sobre batch

Iniciado por MK-Ultra, 8 Diciembre 2007, 18:37 PM

0 Miembros y 3 Visitantes están viendo este tema.

MK-Ultra

Como hago en batch para comprobar , dado un directorio, si existe en ese directorio un archivo X. Porque hice un programa creador de archivos (como ejercicio) y anda a la perfeccion, pero me gustaria que antes de crear el archivo comprobase si hay algun archivo en ese directorio con el mismo nombre asi no lo sobreescribe.

Muchas gracias!
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

zhynar_X

Si no recuerdo mal era con "if exist...", un ejemplo seria:

Código (DOS) [Seleccionar]

@echo off

if exist c:\hola.txt echo si existe


Saludos
Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)

MK-Ultra

buenissimo. ahora me surgio otra duda : se puede agrandar el tamaño de la fuente de las letras en batch?
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

zhynar_X

Poder se puede pero que yo sepa no se puede desde un codigo BATCH, para cambiar el color predeterminado, fuente, tamaño de letra,... en la barra de tareas le das a click derecho y a preferencias (creo). Ahora no lo puedo probar porque tengo el linux enchufado y no me apetece arrancar el windows xD.


Saludos!
Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)

MK-Ultra

el color se cambia con un commando por eso yo queria saber si habia alguno para cambiar le tamaño.

proba:


@ echo off
color 0c
echo hola mundo!
pause > nul
exit

Por cierto, el creador de archivos me quedo así:

@echo off
title Creador de Archivos de ^^Arkangel Creations^^

:menu
cls
color 0c
echo.
echo.
echo Bienvenido al creador de Archivos de ^^Arkangel Creations^^ !
echo.
echo.
echo para continuar presiona cualquier tecla
pause > nul
cls
echo Que archivo te gustaria crear?
echo.
echo.
echo  Presiona   Para crear un
echo.
echo  ^|   1   ^| ^|    .txt     ^|
echo.
echo  ^|   2   ^| ^|    .bat     ^|
echo.
set /p archivo=
if %archivo%==1 goto txt
if %archivo%==2 goto bat

:txt
cls
echo.
echo Has decidido crear un archivo .txt !
echo.
set /p name=Escrive el nombre de tu archivo:
cls
echo Entonces tu archivo sera %name%.txt
echo.
echo.
set /p confirmacion=Estas deacuerdo?
if %confirmacion%==si goto ok
if %confirmacion%==no goto menu

:ok
if exist %name%.txt goto error
echo Bienvenido a tu nuevo archivo! >> %name%.txt
echo Felicidades, tu nuevo archivo ha sido creado!
echo Quieres ir a el ahora?
set /p ir=
if %ir%==si goto dale
if %ir%==no goto no

:dale
start %name%.txt
exit

:bat
cls
echo.
echo Has decidido crear un archivo .bat !
echo.
set /p name=Escrive el nombre de tu archivo:
cls
echo Entonces tu archivo sera %name%.bat
echo.
echo.
set /p confirmacion=Estas deacuerdo?
if %confirmacion%==si goto deacuerdo
if %confirmacion%==no goto menu

:deacuerdo
if exist %name%.bat goto error
echo Bienvenido a tu nuevo archivo! >> %name%.bat
cls
color 0a
echo Felicidades, tu nuevo archivo ha sido creado!
echo Quieres ir a el ahora?
set /p ir=
if %ir%==si goto si
if %ir%==no goto no

:si
start %name%.bat
exit

:no
exit
:error
cls
color 0c
echo El archivo ya existe, por favor cambia el nombre del archivo
pause > nul
goto menu
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

zhynar_X

Esta bastante bien para empezar aunque podrias hacerlo usando menos codigo, asi:
Cuando menos codigo use mejor. ;D ;D

Código (dos) [Seleccionar]

@echo off
title Creador de Archivos de ^^Arkangel Creations^^ (Modificado por zhynar)

:menu
cls
color 0c
echo.
echo.
echo Bienvenido al creador de Archivos de ^^Arkangel Creations^^ !  (modificado por Zhynar)
echo.
echo.
echo para continuar presiona cualquier tecla
pause > nul
cls
echo Que archivo te gustaria crear?
echo.
echo.
echo  Presiona   Para crear un
echo.
echo  ^|   1   ^| ^|    .txt     ^|
echo.
echo  ^|   2   ^| ^|    .bat     ^|
echo.
set /p archivo=
if %archivo%==1 set /a ext=txt
if %archivo%==2 set /a ext=bat


cls
echo.
echo Has decidido crear un archivo .%ext% !
echo.
set /p name=Escrive el nombre de tu archivo:
cls
echo Entonces tu archivo sera %name%.%ext%
echo.
echo.
set /p confirmacion=Estas deacuerdo?
if %confirmacion%==si goto ok
if %confirmacion%==no goto menu

:ok
if exist %name%.txt goto error
echo Bienvenido a tu nuevo archivo! >> %name%.%ext%
echo Felicidades, tu nuevo archivo ha sido creado!
echo Quieres ir a el ahora?
set /p ir=
if %ir%==si goto dale
if %ir%==no goto no

:dale
start %name%.%ext%
exit

:no
exit

:error
cls
color 0c
echo El archivo ya existe, por favor cambia el nombre del archivo
pause > nul
goto menu


Despues solo te quedaria ponerle la opcion de escribir dentro de larchivo, eso podrias hacer con un bucle. ;D


Saludos!!
Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)

MK-Ultra

Sabes q considere en hacerlo asi, pero nu se porq me resulto mas facil a mi modo jajaja :xD

Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

MK-Ultra

no entiendo una cosa:

set /p archivo=
if %archivo%==1 set /a ext=txt
if %archivo%==2 set /a ext=bat


porque aka pones set /a en vz de /p ?

Tenia entendido q se ponia /a para cuando se trataban de numeros , cuando habia q hacer operaciones por ejemplo. Cual es la diferencia?
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

MK-Ultra

no funka el tuyo, proba vs
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

zhynar_X

Cita de: ^Arkangel^ en  9 Diciembre 2007, 00:44 AM
no entiendo una cosa:

set /p archivo=
if %archivo%==1 set /a ext=txt
if %archivo%==2 set /a ext=bat


porque aka pones set /a en vz de /p ?

Tenia entendido q se ponia /a para cuando se trataban de numeros , cuando habia q hacer operaciones por ejemplo. Cual es la diferencia?


Me equiboque envez de "set /a ext=txt" habia que poner solo "set ext=txt". Asi la parte esa del codigo quedaria:
Código (dos) [Seleccionar]

set /p archivo=
if %archivo%==1 set ext=txt
if %archivo%==2 set ext=bat


Ahora SI lo he provado y funciona bien xD.


Saludos
Me he creado un blog:
http://zhynar.blogspot.com  Aver si os gusta! ;)


Optimista es aquel que cree poder resolver un atasco de trafico tocando el claxon (Anonimo)