TUTORIAL PROGRAMACION BAT

Iniciado por soplo, 8 Septiembre 2003, 14:29 PM

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

ed-C

Hola a todos

Lo primero dar una felicitacion tanto a los moderadores del foro como a los usuarios que ayudan con este foro.

Dicho esto explico mi duda, necesito ayuda con un ejercicio para crear un fichero *.bat estuve buscando por el foro si existia una sección de programacion MSDOS, como no la encontre dude entre ponerlo en Dudas en general o Programacion general, al final decidi ponerlo aqui ya que lo vi algo mas relacionado ... o eso me indico mi inculturilla en el mundo de la creacion de ficheros *.bat Luego pense lo posteo dentro de ejercicios o no??? al final decidi que si y si mi decision fue erronea pido disculpas y que un moderador traslade el mensaje a el lugar donde mejor este. Gracias de antemano.

Aqui os dejo el enunciado del ejercicio en su totalidad:

CitarRealizar un fichero BAT llamado SISTEMAS.BAT con el siguiente menú y que realice las opciones que se especifican.

MENU PRINCIPAL

1. Utilidades del sistema
2. Utilidades de ficheros
3. Salir al S.O

Desde este fichero se llama a otros dos ficheros *.bat llamados SISTEMA.BAT y FICHEROS.BAT
SISTEMA.BAT: este fichero sacara en pantalla el siguiente menú y realizara las operaciones que se especifican a continuación:


MENU DEL SISTEMA

A. Actualizar y visualizar la fecha del sistema
B. Visualizar las caracteristicas del sistema
C. Visualizar la hora del sistema
D. Analizar los problemas del disco duro
E. Salir al menú principal

FICHERO.BAT: este fichero sacara en pantalla el siguiente menú y realizara las siguientes operaciones:

MENU DEL FICHERO
A. Visualizar el directorio de la unidad determinada
B. Visualizar el contenido de un fichero paginado
C. Renombrar un fichero
D. Copiar un fichero
E. Borrar varios ficheros
F. Salir al menu principal

Elige la opción deseada

Gracias de antemano. Espero contestacion :D


NOTA:Encontre a posteriori esta sección del foro pero ya habia preguntado en la sección de programacion ejercicios porque hice la busqueda de temas en vez de por bat msdos por ejercicios msdos, asi que si los moderadores quereis borrar uno (lo veo logico) decicdir donde esta mejor planteada la duda, perdon por el duplicado del mensaje y gracias de antemano

jorges

Saludos a todos.
Hay alguna forma de automatizar lo siguiente :

-----------------------------------
move a:\archivo C:\WINDOWS\Escritorio\Carpeta\Int\

cd C:\WINDOWS\Escritorio\Carpeta\Int\

if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.413
ren archivo archivo.414
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.414
ren archivo archivo.415
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.415
ren archivo archivo.416
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.416
ren archivo archivo.417
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.417
ren archivo archivo.418
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.418
ren archivo archivo.419
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.419
ren archivo archivo.420
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.420
ren archivo archivo.421
if exist C:\WINDOWS\Escritorio\Carpeta\Int\archivo.421
ren archivo archivo.422
etc., etc., etc.

start C:\WINDOWS\Escritorio\Carpeta\Int
-----------------
Gracias


Peritintin

Hola, recien me he registrado, he mirado las dudas de los nombres cambiantes, espero que les sea de utilidad el sigueinte bat

echo off
set ndia=
set dia=
set mes=
set año=
set desal=
set hora=
set minuto=
set meridiano=
set separa=-
set datos=
set bitac=

for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (set ndia=%%a& set dia=%%b& set mes=%%c& set año=%%d)
set desal=fecha%dia%%mes%%año%

for /f "tokens=1-3 delims=: " %%x  in ('time /t') do (set hora=%%x& set minuto=%%y& set meridiano=%%z)
set desal=%desal%%separa%%hora%%minuto%%meridiano%
set datos=%desal%.dmp
set bitac=%desal%.log

exp system/system@conexionoracle GRANTS=Y ROWS=Y STATISTICS=NONE file=f:\backups\%datos% log=f:\backups\%bitac% owner=SYSSCG

IF ERRORLEVEL 0 goto compacta
goto error

:compacta
winrar A %desal% %datos% %bitac%
if errorlevel 0 goto mueve
goto error1

:mueve
move %desal%.rar e:
if errorlevel 0 goto todook

:todook
cls
echo todo bien!!!!





"El ejemplo es una orden en silencio" B.P.

Peritintin

Cita de: ceo en 21 Diciembre 2004, 04:15 AM
:)
Hola a todos.
Necesito ayuda con lo siguiente: quiero hacer un bat que cree una carpeta cuyo nombre sea la fecha y hora del sistema operativo.  Alguien tiene idea de como se hace?.  Gracias por sus comentarios.

Puede hacerse de la siguiente forma :

echo off
set ndia=
set dia=
set mes=
set año=
set desal=
set hora=
set minuto=
set meridiano=
set separa=-
set directorio=

for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (set ndia=%%a& set dia=%%b& set mes=%%c& set año=%%d)
set directorio=fecha%dia%%mes%%año%

for /f "tokens=1-3 delims=: " %%x  in ('time /t') do (set hora=%%x& set minuto=%%y& set meridiano=%%z)

set directorio=%directorio%%separa%%hora%%minuto%%meridiano%

mkdir %directorio%

soplo

Hola
CitarPuedo enviar emails atraves de los BATS?
Directamente no, no hay ningún comando para ello. Lo que si puedes hacer es un bat que llame a aplicaciones que si son capaces de hacerlo.
Para ello te recomiento que mires la técnica de 'fake mail' y herramientas como telnet y netcat.

Un saludo
Callar es asentir ¡No te dejes llevar!

dani_travieso

hola

Tengo un problemita seguro para usetd sera una casilla, es que no se programar en bat.

Bueno este es mi problemita, como puedo crear un bat que me ahorre el tiempo en darle doble click a esto archivos y de pase ejecute el archivo winvnc.exe:

archivo 1 : install.bat
archivo 2 : install_silent.bat
archivo 3 : winvnc.exe

Solo quiero dar doble click al bat creado por usted y listo que solo aparezca el la opcion de configuracion del programa ejecutado `por  el bat

davidpg

Hola a todos, soy nuevo en esto de la programación y me gustaria saber si es posible crear un bat que me permita enviar un mail automatico a una direccion concreta y despues ejecutar el cierre de sistema.
Segun lo que vengo leyendo en los distintos foros, este incluido, mi programa es como sigue:

echo off
:EnviaMens
start.exe /w mailto:?to="davidpg@telepolis.com"&subject="Cierre de Sistema" -h
:CierraApl&Sis
RUNDLL32.EXE SHELL32.DLL,SHExitWindowsEx 6

Haber si alguien me puede ayudar xfavor, lo necesito. Muchas gracias.

jorges

Bueno de nuevo por aqui con un problema :

Porque la siguiente sentencia es valida en win98 y en Xp me da error ?
CD C:\DOCUME~1\J\ESCRIT~1\C

IF NOT EXIST 1 RENAME A 1.TXT GOTO FIN
IF NOT EXIST 2 RENAME A 2.TXT GOTO FIN
IF NOT EXIST 3 RENAME A 3.TXT GOTO FIN

:FIN

En Win98 instruccion correcta en Xp "La sintaxis del comando no es correcta"

Gracias

soplo

Hola
CitarCD C:\DOCUME~1\J\ESCRIT~1\C
Esa trayectoria no es correcta a menos que tengas en el escritorio una carpeta llamada C

CitarIF NOT EXIST 1 RENAME A 1.TXT GOTO FIN
Eso no es correcto. Exist devuelve true si existe un fichero y false si no existe. Lo correcto sería
IF NOT EXIST MIARCHIVO.TXT ...

La orden IF NOT EXIST 1 RENAME A 1.TXT GOTO FIN está mal
IF NOT EXIST 1 (si no existe el archivo '1')
RENAME A 1.TXT (renombra el archivo A como 1.txt)
Supongo que note refieres al 1 anterior, porque no es lo mismo 1 que 1.txt.

Por último la orden exist no admite dos órdenes si se cumple la condición. Tu has puesto
CitarIF NOT EXIST 1 condición1 condición2
lo correcto sería
IF NOT EXIST 1 GOTO NOEXISTE1
GOTO CONTINUAR
:NOEXISTE1
RENAME A 1.TXT
:CONTINUAR

Callar es asentir ¡No te dejes llevar!

pulposo

yo de programacion bastante mal, pero ahora me ha cogido por aprender, y que mejor que en bat.

El caso es que me gustario hacer un registro con el.bat, pero cogiendo el directorio donde se ha instalado el programa, diria que un %1 o una cosa asi.

Si hago En el.bat

"Directorio instalacion"="%1">>pep.reg
No me sirve de nada

Creo que tengo de hacer variables y ni pum, y lo ideal seria sin ayuda del usuario,es decir automatizado.

Gracias.