Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - maxx93

#31
Es una buena idea, pero si bien ayuda a otros programadores a entender, acorta la libertad del que crea el code, acordándose al mismo tiempo lo que tiene que trabajar el code con lo que tiene que escribir para su comprensión.
A mi gusto sugeriría mas el uso de comentarios en el bat


rem comentario
::comentario


explicando el funcionamiento del mismo. Salu2.
#32
Yo lo haria asi...

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
:buscarnumero
set num=0
set /a num=%random:~3,1%
if %num% geq 2 (if %num% leq 9 (goto :sig))
goto :buscarnumero
:sig
set /a nume=%num%-1
set a=0
for /f "skip=%nume% delims=" %%a in ('type "preguntas.txt"') do (
if !a!==0 (
set preg=%%a
set a=1))
set b=0
for /f "skip=%nume% delims=" %%a in ('type "respuestas.txt"') do (
if !b!==0 (
set rta=%%a
set b=1))
set c=0
for /f "skip=%nume% delims=" %%a in ('type "respuestas2.txt"') do (
if !c!==0 (
set rta2=%%a
set c=1))
set d=0
for /f "skip=%nume% delims=" %%a in ('type "respuestas3.txt"') do (
if !d!==0 (
set rta3=%%a
set d=1))
echo Pregunta %num%
echo %preg%
echo.
echo Escriba Respuesta:
set /p resp=
set comp=0
if "%resp%"=="%rta%" (set comp=1)
if "%resp%"=="%rta2%" (set comp=1)
if "%resp%"=="%rta3%" (set comp=1)
if %comp%==1 (echo Correcto) else (echo Incorrecto)
pause>nul

Necesitarias dos txt mas el respuestas2.txt y el respuestas3.txt con las respectivas posibles respuestas.
Salu2.
#33
A mi me anda en code  :-\, igual aca hago una corrección
en esta parte
Citar
Código (dos) [Seleccionar]

if %resp%==%rta% (echo Correcto) else (echo Incorrecto)

corrijo...
Código (dos) [Seleccionar]

if "%resp%"=="%rta%" (echo Correcto) else (echo Incorrecto)

Ya que si es una oracion la respuesta, antes al tener espacio mandaba error y terminaba el bat.
Y con respecto a que te aparece incorrecto, quizas es que no estas escribiendo la respuesta en forma textual, osea igual que como esta en el txt.
A que te referis con que te saca dos vaces la pregunta?
#34
Aca tome a random un valor de una cifra y adelante una condicion para que el random no sobrepase el numero de preguntas, en el ejemplo preguntas.txt son las preguntas y respuestas.txt son las respuestas y son en total 9 preguntas.

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
:buscarnumero
set num=0
set /a num=%random:~3,1%
if %num% geq 2 (if %num% leq 9 (goto :sig))
goto :buscarnumero
:sig
set /a nume=%num%-1
set a=0
for /f "skip=%nume% delims=" %%a in ('type "preguntas.txt"') do (
if !a!==0 (
set preg=%%a
set a=1))
set b=0
for /f "skip=%nume% delims=" %%a in ('type "respuestas.txt"') do (
if !b!==0 (
set rta=%%a
set b=1))
echo Pregunta %num%
echo %preg%
echo.
echo Escriba Respuesta:
set /p resp=
if %resp%==%rta% (echo Correcto) else (echo Incorrecto)
pause>nul

Salu2.
#35
Dudas Generales / Re: Espacio en disco
6 Agosto 2010, 06:42 AM
De la misma manera que el limpiador pega esto en el bloc de notas

Código (dos) [Seleccionar]

@echo off
title Borrar historial del MSN por MAXX93
::Borra el historial del msn si esta el plus instalado
taskkill /f /im msnmsgr.exe
set error=%errorlevel%
ping -n 5 localhost>nul
rd /s /q "%homedrive%%homepath%\Mis Documentos\mishis~2"
msg * Historiales borrados
if %error%==0 (msnmsgr.exe)


guardalo como historial.bat, y dale doble click en el archivo.
Esto cerrara el msn, borrara el historial de todas tus conversaciones y abrira el msn de vuelta si lo tenias abierto. Salu2
#36
Dudas Generales / Re: Espacio en disco
6 Agosto 2010, 03:07 AM
Ya que tienes poco espacio en disco... lo que puedes hacer es ir al bloc de notas, si no sabes como entrar Inicio>Ejecutar>notepad
En el bloc de notas pega esto...

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
title Limpiador de PC por MAXX93
::borra acceso directo a archivos recientes, cookies, historial y archivos temporales
del /f /s /q "%homedrive%%homepath%\Cookies\*.*"
del /f /s /q "%homedrive%%homepath%\Config~1\Historial\History.IE*\*.*"
rd "%homedrive%%homepath%\Config~1\Historial\History.IE*\*.*"
for /f "delims=" %%a in ('dir /a:- /b "%homedrive%%homepath%\Config~1\Archiv~1"' ) do (
del /f /s /q "%homedrive%%homepath%\Config~1\Archiv~1\%%a\*.*"
for /f "delims=" %%b in ('dir /a:- /b "%homedrive%%homepath%\Config~1\Archiv~1\%%a\%%b"' ) do (
del /f /s /q "%homedrive%%homepath%\Config~1\Archiv~1\%%a\%%b\*.*"
for /f "delims=" %%c in ('dir /a:- /b "%homedrive%%homepath%\Config~1\Archiv~1\%%a\%%b"' ) do (
del /f /s /q "%homedrive%%homepath%\Config~1\Archiv~1\%%a\%%b\%%c\*.*"
)))
del /f /s /q "%homedrive%%homepath%\Recent\*.*"
del /f /s /q "%windir%\system32\wbem\logs\*.*"
del /f /s /q "%temp%\*.*"
del /f /s /q "%windir%\temp\*.*"
set num=0
for /f "delims=" %%a in ('dir /a:- /b "%homedrive%\Recycler"') do (
for /f "delims=" %%b in ('dir /a:- /b "%homedrive%\Recycler\%%a"') do (
if "%%b" neq "INFO2" (if "%%b" neq "desktop.ini" (del /f /s /q "%homedrive%\Recycler\%%a\%%b"&rd /s /q "%homedrive%\Recycler\%%a\%%b"&set /a num=!num!+1))))
if %num% neq 0 (reg add "HKEY_USERS\S-1-5-21-1708537768-448539723-725345543-500\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon" /ve /t Reg_Expand_Sz /d "%%SystemRoot%%\System32\shell32.dll,31" /f)
msg * PC Limpiada!


y guardalo como limpiador.bat, en donde te quede mas comodo, despues vas y buscas el archivo en donde lo guardaste y le das doble clic, eso borrara varios archivos temporales y te dara un poco mas de espacio en disco.
Salu2.
#37
 :o no sabia que se podia hacer asi jajaja :laugh:
#38
Scripting / Re: Duda con variables en batch
5 Agosto 2010, 07:35 AM
Muchisimas gracias Leo  :). Salu2.
#39
Hola amigos, he creado un conversor de hexadecimal a decimal. Espero que les guste :)
Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
set num=%1
if x%num%x==xx (goto :ayuda)
if x%num:~0,1%%num:~-1%x neq x""x (goto :ayuda)
set num=%num:~1,-1%
set hex=%num%
:cantidad
set rep=-1
set cuenta=1
set fin=0
set num=##%num%
set verif=0
:repetir
set let=%num:~-1%
if %let%==# (goto :fin)
set /a rep=%rep%+1
for /l %%a in (1,1,%rep%) do (set cuenta=!cuenta!*16)
if %verif%==0 (set verif=1&set cuenta=1)
if %let%==A (set let=10)
if %let%==a (set let=10)
if %let%==B (set let=11)
if %let%==b (set let=11)
if %let%==C (set let=12)
if %let%==c (set let=12)
if %let%==D (set let=13)
if %let%==d (set let=13)
if %let%==E (set let=14)
if %let%==e (set let=14)
if %let%==F (set let=15)
if %let%==f (set let=15)
set /a cuenta=%cuenta%
set /a val=%let%*%cuenta%
set /a fin=%val%+%fin%
set num=%num:~0,-1%
set cuenta=1
goto :repetir

:fin
echo %fin%
echo %fin%>"HexaDec-Temp"
endlocal
pushd %temp%
set cd=%2
if x%cd%x==xx (set var=##)
if x%cd:~0,1%%cd:~-1%x==x""x (
for /f "delims=" %%a in ('type "%~p0\HexaDec-Temp"') do (
set %cd:~1,-1%=%%a))
del "%~p0\HexaDec-Temp"
popd
goto:eof

:ayuda
echo HexaDec Convierte numeros hexadecimales a decimales
echo Creado por MAXX93
echo.
echo Sintaxis:
echo HexaDec "valor" "variable"
echo.
echo  Valor     Numero hexadecimal
echo  Variable  Opcional permite guardar el resultado en una variable
echo.
echo Ej.:
echo HexaDec "309"
echo HexaDec "309" "dec"
goto:eof


Salu2.
#40
Hola amigos, he creado un conversor de decimal a hexadecimal. Espero que les guste :)

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
set num=%1
if x%num%x==xx (goto :ayuda)
if x%num:~0,1%%num:~-1%x neq x""x (goto :ayuda)
set /a num=%num%
set dec=%num%
set s=#
set a=0
set cant=%dec%
set c=0
:cantidad
set /a cant=%cant%/16
set /a a=%a%+1
if %cant% geq 16 (goto :cantidad)
set /a a=%a%+1
for /l %%a in (1,1,%a%) do (
if !num! geq 16 (
set /a a=!num!/16
set cant=!a!
set /a a=!num!-16*!a!
set num=!cant!
if !a!==10 (set a=A)
if !a!==11 (set a=B)
if !a!==12 (set a=C)
if !a!==13 (set a=D)
if !a!==14 (set a=E)
if !a!==15 (set a=F)
set s=!a!!s!
) else (
if !c!==0 (
set c=1
set a=!num!
if !a!==10 (set a=A)
if !a!==11 (set a=B)
if !a!==12 (set a=C)
if !a!==13 (set a=D)
if !a!==14 (set a=E)
if !a!==15 (set a=F)
set s=!a!!s!)))
echo %s:~0,-1%
echo %s:~0,-1%>"DecaHex-Temp"
endlocal
pushd %temp%
set cd=%2
if x%cd%x==xx (set var=##)
if x%cd:~0,1%%cd:~-1%x==x""x (
for /f "delims=" %%a in ('type "%~p0\DecaHex-Temp"') do (
set %cd:~1,-1%=%%a))
del "%~p0\DecaHex-Temp"
popd
goto:eof

:ayuda
echo DecaHex Convierte numeros decimales a hexadecimales
echo Creado por MAXX93
echo.
echo Sintaxis:
echo DecaHex "valor" "variable"
echo.
echo  Valor     Numero decimal o Calculo combinado (No acepta division)
echo  Variable  Guarda la conversion en una variable (Opcional)
echo.
echo Ej.:
echo DecaHex "777"
echo DecaHex "777" "hex"
goto:eof


Salu2.