EJERCICIO MSDOS

Iniciado por ed-C, 19 Enero 2005, 03:54 AM

0 Miembros y 1 Visitante 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 y ahora encontre una sección igual mas adecuada como es cursos *bat, 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.

Natanael

Bueno, hice algo...

Sistema.bat@echo off
:mp
cls
echo. MENU PRINCIPAL
echo.ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.1. Utilidades del sistema
echo.2. Utilidades de ficheros
echo.3. Salir al S.O
choice /n /c123>nul
if errorlevel 3 goto end
if errorlevel 2 mf.bat
if errorlevel 1 ms.bat
:end
cls
echo Esta Seguro Q Dese Salir?
echo.1.Si.
echo.2.No, volver.
choice /n /c12>nul
if errorlevel 2 goto mp
if errorlevel 1 echo Chau...
type nul|choice /c1 /n /t1,3>nul
cls


MS.bat@echo off
:ms
cls
echo. MENU DEL SISTEMA
echo.ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.A. Actualizar y visualizar la fecha del sistema
echo.B. Visualizar las caracteristicas del sistema
echo.C. Visualizar la hora del sistema
echo.D. Analizar los problemas del disco duro
echo.E. Salir al menu principal
choice /n /cabcde >nul
if errorlevel 5 sistema.bat
if errorlevel 4 scandisk
if errorlevel 3 goto c
if errorlevel 2 goto b
if errorlevel 1 goto a
goto ms
:a
cls
echo @prompt set date=$d > {a}.bat
%comspec% /e:2048 /c {a}.bat > {b}.bat
for %%v in ({b}.bat del) do call %%v {?}.bat
echo Estamos en la fecha %date%
echo.¿Es esto correcto?
echo.1.Si
echo.2.No!
choice /n /c12 >nul
if errorlevel 2 date
if errorlevel 1 goto ms
goto ms
:b
cls
drvspace c:
echo.|ver
echo Presione una tecla para volver al Menu del Sisema
pause>nul
goto ms
cls
echo @prompt set time=$t$h$h$h > {a}.bat
%comspec% /e:2048 /c {a}.bat > {b}.bat
for %%v in ({b}.bat del) do call %%v {?}.bat
echo.Son las %time%
echo ¿Es Esto Correcto??
echo.1.Si
echo.2.NO!
choice /n /c12 >nul
if errorlevel 2 time
if errorlevel 1 goto ms


MF.bat:mf
cls
echo. MENU DEL FICHERO
echo.ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo.A. Visualizar el directorio de la unidad determinada
echo.B. Visualizar el contenido de un fichero paginado
echo.C. Renombrar un fichero
echo.D. Copiar un fichero
echo.E. Borrar varios ficheros
echo.F. Salir al menu principal
echo.
echo No lo termine =P
echo Toca una tecla pa' volver
pause>nul
sistema.bat


Fijate, si lo podes terminar, aca ya son las 10:50 y no dormi todavía y quiero ver algo de QBasic  :P
Salu-DOS

einchel

Buenas, tengo un problema y es que tengo WXP, pero no tengo tiene el comando CHOICE  no puedo hacer algo parecido a este ejemplo.

Por favor a ver si podeis ayudarme. Gracias....  :rolleyes:

Hendrix

Claro que se puede hacer!!!! :) :) mira:

Citarecho.1. Utilidades del sistema
echo.2. Utilidades de ficheros
echo.3. Salir al S.O
choice /n /c123>nul
if errorlevel 3 goto end
if errorlevel 2 mf.bat
if errorlevel 1 ms.bat

Lo podemos substituir por esto:

echo.1. Utilidades del sistema
echo.2. Utilidades de ficheros
echo.3. Salir al S.O
set /p opciones=
if %opciones%==3 goto end
if %opciones%==2 mf.bat
if %opciones%==1 ms.bat


Facil, no???

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

satanico88

El Comando "Choice" no me lo reconoce como Comando Externo o Interno..:S
q Pasa ?

sakura-san

Pues que no es MS-DOS realmente es una especie de consola con muchos comandos que ya no puedes utilizar.

prueba con esto.  ;D

http://www.megaupload.com/?d=F9VRA4HI

any

Any
#6
 >:(

kodek

Yo tengo un problema parecido, estoy intentando crear un menu con la ayuda el disco de inicio de windows 98, para una serie de opciones,(bueno son actualizaciones de bios y bioslocks) para poder cargarlos desde una memeria usb.

Bueno tengo el menu creado, pero las opciones no las ejecuta bien, va saltando de una a otra sin parar, aqui os pego el config.sys y el autoexec.bat a ver si podeis hecharme una mano, si no creo que acabare por volverme loco...

config.sys
[menu]
submenu=MSI, Actualizaciones de placas MSI
submenu=ASROCK, Actualizaciones de placas ASROCK
submenu=INTEL, Actualizaciones de placas INTEL
submenu=GIGABYTE, Actualizaciones de placas GIGABYTE
submenu=ABIT, Actualizaciones de placas ABIT
submenu=BIOSLOCK, Actualizar Bios Lock
menudefault=cd,1000
menucolor=14,0
[MSI]
menuitem=ms7281, Bios placa MSI 7281
menuitem=ms7241, Bios placa MSI 7241
menuitem=ms7255, Bios placa MSI 7255
submenu=menu, Volver al menu principal...
menudefault=menu,
[ASROCK]
menuitem=775i65g, Bios placa ASROCK 775I65G
menuitem=am2nf6g, Bios placa ASROCK AM2NF6G
submenu=menu, Volver al menu principal...
menudefault=menu,
[INTEL]
menuitem=965gf, Bios placa IntelQ965GF
menuitem=945gtpl, Bios placa Intel945GTPL
menuitem=945gpm, Bios placa Intel945GPM
menuitem=945gnt, Bios placa Intel945GNT
submenu=menu, volver al menu principal...
menudefault=menu,
[GIGABYTE]
menuitem=945gm-s2, Bios placa Gigabyte 945GM-S2
menuitem=945p-s3, Bios placa Gigabyte 945P-S3
menuitem=965p-s3, Bios placa Gigabyte 965P-S3
submenu=menu, volver al menu principal...
menudefault=menu,
[ABIT]
menuitem=il90, Bios placa ABIT IL90
submenu=menu, volver al menu principal...
menudefault=menu,
[BIOSLOCK]
menuitem=bioslockintel, Pasar bioslock Intelq
menuitem=bioslockmsi, Pasar bioslock de Msi, Asrock, Abit.
submenu=menu, volver al menu principal...
menudefault=menu,

[bioslockintel]
include=noemm
[bioslockmsi]
include=noemm
[ms7281]
include=noemm
[ms7241]
include=noemm
[ms7255]
include=noemm
[775i65g]
include=noemm
[am2nf6g]
include=noemm
[965GF]
include=noemm
[945gtpl]
include=noemm
[945gpm]
include=noemm
[945gnt]
include=noemm
[945gm-s2]
include=noemm
[945p-s3]
include=noemm
[965p-s3]
include=noemm
[il90]
include=noemm

[EMM]
device=himem.sys /testmem:off /numhandles=128
devicehigh=emm386.exe NOEMS
dos=high,umb,
fileshigh=40
buffershigh=4
shell=\command.com /e:2048 /p
switches=/f
[NOEMM]
devicehigh=himem.sys /testmem:off /numhandles=128
dos=high,umb,
fileshigh=40
shell=\command.com /e:2048 /p
switches=/f

[COMMON]
lastdrivehigh=z

autoexec.bat
IF "%config%"=="ms7281" GOTO ms7281
IF "%config%"=="il90" GOTO il90
IF "%config%"=="945p-s3" GOTO 945P-S3
IF "%config%"=="965p-s3" GOTO 965P-s3
IF "%config%"=="bioslockintel" GOTO BIOSLOCKINTEL
IF "%config%"=="965gf" goto 965gf
IF "%config%"=="945gtpl" GOTO 945gtpl
IF "%config%"=="945gpm" GOTO 945GPM
IF "%config%"=="945gnt" goto 945gnt
IF "%config%"=="ms7241" goto ms7241
IF "%config%"=="ms7255" goto ms7255
IF "%config%"=="775i65g" goto 775i65g
IF "%config%"=="am2nf6g" goto am2nf6g
IF "%config%"=="bioslockmsi" goto bioslockmsi
IF "%config%"=="945gm-s2" goto 945gm-s2

:945gm-s2
cd images
cd gigabyte
cd 945gm-s2
945gms-2.bat
cd..
cd..
cd..
promp reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:bioslockmsi
cd images
cd bioslock
cd blmsi
blmsi.bat
cd..
cd..
cd..
prompt reinicia el equipo y selecciona test.
cls

:am2nf6g
cd images
cd msi
cd am2nf6g
call am2nf6g.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:775i65g
cd images
cd msi
cd 775i65g
call 775i65g.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:ms7255
cd images
cd msi
cd ms7255
call ms7255.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:ms7241
cd images
cd msi
cd ms7241
call ms7241.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:945gnt
cd images
cd intel
cd 945gnt
call 945gnt.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:945GPM
cd images
cd intel
cd 945GPM
call 945gpm.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:945gtpl
cd images
cd intel
cd 945gtpl
call 945gtpl.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:965gf
cd images
cd intel
cd 965gf
call 965gf.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:BIOSLOCKINTEL
cd images
cd bioslock
cd blintelq
call bioslockintel.bat
prompt Reinicia el equipo y selecciona test.
cls

:965p-s3
cd images
cd gigabyte
cd 965p-s3
call 965p-s3.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:945P-S3
cd images
cd gigabyte
cd 945p-s3
call 945p-s3.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.
cls

:il90
cd images
cd abit
cd il90
call il90.bat

:ms7281
cd IMAGES
cd MSI
cd MS7281
call ms7281.bat
cd..
cd..
cd..
prompt Reinicia el equipo y pon el bioslock correspondiente a la placa.

Y una ultima cosilla, estas bios de placas las tenia antes comprimidas en imagenes con extension *.ima, habria alguna forma de poder dejaras como *.ima y que las extraiga en una unidad temporal o algo parecido.

Gracias a todos. :rolleyes:

D4RIO

#8
sorry, habia publicado algo sobre set /p pero vi que ya hay algo explikado asi que edite el post, para que sea borrado :xD
OpenBSDFreeBSD

vitaepe

Cita de: Morphmitrio en  1 Diciembre 2006, 04:56 AM
Hola q tal Comunidad con repecto al comando Choice bueno cunado estaba hojilla en los .Bat ya hace un tiempo pase amarguras porq no podia utilizar el Choice en Xp pero me hice mi Propio comando .com jeje.

Utlizando DEBUG cree la Orden S_O_NO.COM para que el usuario teclee S o N bueno manos a la obra:

C:\>Debbug S_O_NO.COM <intro>

-A 100 <Intro>
2707:0100 MOV  AH,  0  <Intro>
2707:0102 INT   16        <Intro>
2707:0104 MOV  AL ,  0  <Intro>
2707:0106 CMP  AH , 15 <Intro>
2707:0109 JE     112       <Intro>
2707:010B CMP  AH, 15  <Intro>
2707:010E JE     114       <Intro>
2707:0110 JMP   100       <Intro>
2707 :0112 MOV  AL, 1     <Intro>
2707:0114 MOV  AH, 4C  <Intro>
2707:0116 INT    21         <Intro>
2707:0118 <Intro>
-R CX <Intro>
CX 0000
:18  <Intro>
-W   <Intro>
Escribiendo 00018 bytes
-Q <Intro>


jeje eso es todo ..............cualquier cosa me preguntan pero está sencillo y ya saben que hacer  bye  ;D

Hola...
Soy usuario de este foro ya hace bastante tiempo me la paso revisando diferentes temas no soy de postear mucho pero tu articulo me llamo la atencion podrias explicar en si que es lo que significa, te soy sincero no se mucho pero al menos hablas con coherencia, la mayoria aqui hace copias de otros foros y aluden creciones propias, un saludo espero que puedas explicarlo.