Excelente Smart, veo que te tomaste en serio mi consejo, gracias por hacerlo.
Saludos.
Saludos.
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úCita de: :: SmartGenius :: en 14 Abril 2009, 05:20 AMTal ves si, pero por ahora estoy ocupado con algunos problemas de la USACO.
Podrias implementarlo completo ?....
@echo off
:: Algoritmo de numeros primos, Leo Gutierrez R.
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
set /a "contador=1"
set /a "divisores=0"
set /a "numero_=numero+1"
set /a "suma=0"
:bucle
if %contador% equ %numero_% (goto:end)
set /a "operacion=%numero% %% %contador%"
if %operacion% equ 0 (
set /a "divisores+=1"
set /a "suma+=%contador%"
)
set /a "contador+=1"
goto:bucle
:end
set /a "_=%numero%+1"
if %suma% equ %_% (echo.Es primo) else (echo.No es primo)
goto:eof
C:\>code
Numero : 2
Es primo
C:\>code
Numero : 4
No es primo
C:\>code
Numero : 19
Es primo
C:\>code
Numero : 23
Es primo
C:\>code
Numero : 3
Es primo
C:\>code
Numero : 5
Es primo
C:\>
C:\Archivos>dir /b /s /ad
C:\Archivos\docs
C:\Archivos\docs\docs
C:\Archivos\docs\docs\docs
C:\Archivos>
@echo off
:: Nos cambiamos a la ruta donde trabajaremos con los archivos.
cd /d "%homedrive%\archivos"
for /d /r %%_ in (*) do (
if exist "%%_\file.txt" (
call :copia "%%_\file.txt"
)
)
goto:eof
:copia
copy /y %1 "%homedrive%\file-%random:~0,2%.txt"
goto:eof
1 archivos copiados.
1 archivos copiados.
1 archivos copiados.
Press any key...
C:\>dir /b file*
file-15.txt
file-46.txt
file-49.txt
C:\>
C:\>systeminfo | findstr /r "XP"
Nombre del sistema operativo: Microsoft Windows XP Professional
C:\>
C:\>wmic os get name
Name
Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1
C:\>
@echo off
rem Universal Batch Operating System Detector
rem Based on work of Timo Salmi found in http://www.netikka.net/tsneti/info/tscmd004.htm
rem Writted by 0x0309
rem e-mail: 0x0309@-gmail.com (without dash)
rem version 11-3-2009 v1.1
rem Tested succesfully in:
rem MS-DOS 5.0
rem MS-DOS 6.0
rem MS-DOS 6.21
rem MS-DOS 6.22
rem MS-DOS 7.10
rem Windows 95 b
rem Windows NT 4.0 Workstation
rem Windows 98 SE
rem Windows 2000 Server
rem Windows XP 32 bit
rem Windows XP 64 bit (2003 version)
rem Windows Vista
rem Windows 7
set isnt=false
echo.>nul & set isnt=true
if true==%isnt% goto _nt
:_dos9x
set _os_=UNKNOW
echo Test|find "Fail">nul
if errorlevel 0 if not errorlevel 1 set _os_=MSDOS5-621
if not %_os_%==UNKNOW goto _resume
ver | find.exe /i "MS-DOS" >nul
if errorlevel 0 if not errorlevel 1 set _os_=MSDOS622-710
ver | find.exe /i "Windows 95" >nul
if errorlevel 0 if not errorlevel 1 set _os_=95
ver | find.exe /i "Windows 98" >nul
if errorlevel 0 if not errorlevel 1 set _os_=98
ver | find.exe /i "Windows Millennium" >nul
if errorlevel 0 if not errorlevel 1 set _os_=ME
goto _resume
:_nt
net.exe config workstation <nul 1>&0 2>&1
if not errorlevel 0 goto _vermode
if errorlevel 1 goto _vermode
goto _nt_
:_vermode
for /f "tokens=* eol=" %%a in ('ver') do (set _os_=%%a)
goto _eval_
:_nt_
for /f "skip=4 tokens=* eol=" %%a in ('net.exe config workstation') do (
echo.%%a | find.exe /i "Windows" >nul
if errorlevel 0 if not errorlevel 1 set "_line=%%a"&goto _n_t_
)
:_n_t_
set _arg=%_line:"=%&set /a _tk=1
call :_cut %_arg%
for /f "tokens=%_tk%,* eol=" %%a in ("%_line%") do (set _os_=%%a %%b)
set "_arg="&set "_tk="&set "_line="
:_eval_
find.exe 1>nul 2>&1
if errorlevel 9009 goto _unknow
set _os_ | find.exe /i " NT" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=NT&goto _resume
set _os_ | find.exe /i " 2000" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=2000&goto _resume
set _os_ | find.exe /i " 2002" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=XP&goto _resume
set _os_ | find.exe /i " XP" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=XP&goto _resume
set _os_ | find.exe /i " 5.1" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=XP&goto _resume
set _os_ | find.exe /i " 5.2" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=XP64-2003&goto _resume
set _os_ | find.exe /i " 2003" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=2003&goto _resume
set _os_ | find.exe /i " 2008" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=2008&goto _resume
set _os_ | find.exe /i " 6.0" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=2008-VISTA&goto _resume
set _os_ | find.exe /i " Vista" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=VISTA&goto _resume
set _os_ | find.exe /i " 6.1" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=SEVEN&goto _resume
set _os_ | find.exe /i " 7" >nul 2>&1
if errorlevel 0 if not errorlevel 1 set _os_=SEVEN&goto _resume
:_unknow
set _os_=UNKNOW
goto _resume
:_cut
set _arg=%1&shift
if /i not [%_arg%]==[Windows] (set /a _tk=%_tk%+1&goto:_cut)
goto :eof
:_resume
echo.System: %_os_%
for /f "tokens=1 delims=|" %%_ in ('wmic os get name ^| findstr /r /v "^Name"') do (
echo %%_
)
pause
System: XP
^Z
Microsoft Windows XP Professional
Presione una tecla para continuar . . .
@echo off
:: Numeros perfectos, Leo Gutierrez R.
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
set /a "i=1"
set /a "suma=0"
set /a "operacion=0"
:bucle
if %i% equ %numero% (goto:end)
set /a "operacion=%numero% %% %i%"
if %operacion% equ 0 (set /a "suma+=%i%")
set /a "i+=1"
goto:bucle
:end
if %suma% equ %numero% (
echo El numero es perfecto.
) else (
echo El numero no es perfecto.
)
goto:eof
C:\>code
Numero : 4
El numero no es perfecto.
C:\>code
Numero : 6
El numero es perfecto.
C:\>code
Numero : 20
El numero no es perfecto.
C:\>code
Numero : 28
El numero es perfecto.
C:\>code
Numero : 2000
El numero no es perfecto.
C:\>code
Numero : 496
El numero es perfecto.
C:\>496
"496" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
C:\>
Cadena : Leonardo
L = 12
e = 5
o = 15
n = 14
a = 1
r = 18
d = 4
o = 15
Press any key...
@echo off
setlocal enabledelayedexpansion
:code
set /p "cadena=Cadena : "
if not defined cadena (goto:code)
set "abecedario=abcdefghijklmnopqrtsuvwxyz"
set /a "longitud=0"
set "cadena2=%cadena%"
set /a "contador=1"
:bucle
if not defined cadena (goto:next)
set "cadena=%cadena:~1%"
set /a "longitud+=1"
goto:bucle
:next
set /a "longitud-=1"
for /l %%$ in (0,1,%longitud%) do (
call :etiqueta !cadena2:~%%$,1!
)
goto:eof
:etiqueta
set /a "contador=1"
set "caracter=%1"
for /l %%_ in (0,1,25) do (
if /i ["!abecedario:~%%_,1!"]==["%caracter%"] (call:view !caracter! !contador!)
set /a contador+=1
)
goto:eof
:view
echo %1 = %2
goto:eof