Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: MK-Ultra en 8 Diciembre 2007, 18:37 PM

Título: Duda sobre batch
Publicado por: MK-Ultra en 8 Diciembre 2007, 18:37 PM
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!
Título: Re: Duda sobre batch
Publicado por: zhynar_X en 8 Diciembre 2007, 18:45 PM
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
Título: Re: Duda sobre batch
Publicado por: MK-Ultra en 8 Diciembre 2007, 18:48 PM
buenissimo. ahora me surgio otra duda : se puede agrandar el tamaño de la fuente de las letras en batch?
Título: Re: Duda sobre batch
Publicado por: zhynar_X en 8 Diciembre 2007, 18:56 PM
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!
Título: Re: Duda sobre batch
Publicado por: MK-Ultra en 8 Diciembre 2007, 19:31 PM
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
Título: Re: Duda sobre batch
Publicado por: zhynar_X en 8 Diciembre 2007, 20:16 PM
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!!
Título: Re: Duda sobre batch
Publicado por: MK-Ultra en 9 Diciembre 2007, 00:38 AM
Sabes q considere en hacerlo asi, pero nu se porq me resulto mas facil a mi modo jajaja :xD

Título: Re: Duda sobre batch
Publicado por: MK-Ultra 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?
Título: Re: Duda sobre batch
Publicado por: MK-Ultra en 9 Diciembre 2007, 00:50 AM
no funka el tuyo, proba vs
Título: Re: Duda sobre batch
Publicado por: zhynar_X en 9 Diciembre 2007, 12:28 PM
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
Título: Re: Duda sobre batch
Publicado por: MK-Ultra en 9 Diciembre 2007, 12:32 PM
ok ok  ;D