elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 [247] 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 ... 279
2461  Programación / Scripting / Re: [Batch] Batch Designer - by SmartGenius en: 15 Abril 2009, 05:23 am
Excelente Smart, veo que te tomaste en serio mi consejo, gracias por hacerlo.

Saludos.  :)
2462  Programación / Scripting / Re: Sucesión Fibonacci [Batch] en: 14 Abril 2009, 19:39 pm
Simplemente excelente, 0x0309.

Saludos.
2463  Programación / Scripting / Re: Buscar archivos en subcarpetas - batch en: 14 Abril 2009, 19:34 pm
De nada.
2464  Programación / Scripting / Re: Algoritmo numeros primos [Batch] en: 14 Abril 2009, 05:31 am
Podrias implementarlo completo ?.... :rolleyes:
Tal ves si, pero por ahora estoy ocupado con algunos problemas de la USACO.

Saludos.
2465  Programación / Scripting / Algoritmo numeros primos [Batch] en: 14 Abril 2009, 04:56 am
Código
  1. @echo off
  2. :: Algoritmo de numeros primos, Leo Gutierrez R.
  3. :code
  4. set /p "numero=Numero : "
  5. if not defined numero (goto:code)
  6. set /a "contador=1"
  7. set /a "divisores=0"
  8. set /a "numero_=numero+1"
  9. set /a "suma=0"
  10. :bucle
  11. if %contador% equ %numero_% (goto:end)
  12. set /a "operacion=%numero% %% %contador%"
  13. if %operacion% equ 0 (
  14. set /a "divisores+=1"
  15. set /a "suma+=%contador%"
  16. )
  17. set /a "contador+=1"
  18. goto:bucle
  19. :end
  20. set /a "_=%numero%+1"
  21. if %suma% equ %_% (echo.Es primo) else (echo.No es primo)
  22. goto:eof

Salida:
Código:
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:\>
2466  Programación / Scripting / Re: Buscar archivos en subcarpetas - batch en: 13 Abril 2009, 21:16 pm
Ejemplo practico :
En las siguientes subcarpetas quiero comprobar que exista el archivo "file.txt" y asi copiarlo a la ruta C:\
pero se nos presenta un problema, que los archivos que si encuentre serán copiados con el nombre "c:\file.txt"
por lo que podrían ser reescritos, asi que nos ayudaremos de la variable RANDOM, para generar un numero aleatorio.
Código:
C:\Archivos>dir /b /s /ad
C:\Archivos\docs
C:\Archivos\docs\docs
C:\Archivos\docs\docs\docs

C:\Archivos>

Código
  1. @echo off
  2. :: Nos cambiamos a la ruta donde trabajaremos con los archivos.
  3. cd /d "%homedrive%\archivos"
  4. for /d /r %%_ in (*) do (
  5. if exist "%%_\file.txt" (
  6. call :copia "%%_\file.txt"
  7. )
  8. )
  9. goto:eof
  10. :copia
  11. copy /y %1 "%homedrive%\file-%random:~0,2%.txt"
  12. goto:eof

Si algunos archivos son encontrados te debe de dar en pantalla algo como :
       
Código:
1 archivos copiados.
        1 archivos copiados.
        1 archivos copiados.
Press any key...
Ahora, checamos que los archivos hayan sido copiados :
Código:
C:\>dir /b file*
file-15.txt
file-46.txt
file-49.txt

C:\>

Saludos.
2467  Programación / Scripting / Re: Algoritmo "Numeros perfectos" en: 13 Abril 2009, 20:58 pm
Si, gracias por la idea, SMART.
2468  Programación / Scripting / Re: Ayuda con BAT en: 13 Abril 2009, 20:23 pm
En el caso de Windows XP, hay alguna smaneras de sacar que sistema es :

Código:
C:\>systeminfo | findstr /r "XP"
Nombre del sistema operativo:              Microsoft Windows XP Professional

C:\>
ó:

Código:
C:\>wmic os get name
Name
Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1


C:\>
Ahora, esto lo pudieras unir con el codigo que te puso Novlucker:

Código:
@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
Salida :
Código:
System: XP
^Z
Microsoft Windows XP Professional
Presione una tecla para continuar . . .

Windows 2000 no lo he usado :(

Saludos.
2469  Programación / Scripting / Algoritmo "Numeros perfectos" [Batch] en: 13 Abril 2009, 09:09 am

De Wikipedia, la enciclopedia libre
Un número perfecto es un número natural que es igual a la suma de sus divisores propios positivos, sin incluirse él mismo. Dicho de otra forma, un número perfecto es aquel que es amigo de sí mismo.

Así, 6 es un número perfecto, porque sus divisores propios son 1, 2 y 3; y 6 = 1 + 2 + 3. Los siguientes números perfectos son 28, 496 y 8128.


Código
  1. @echo off
  2. :: Numeros perfectos, Leo Gutierrez R.
  3. :code
  4. set /p "numero=Numero : "
  5. if not defined numero (goto:code)
  6. set /a "i=1"
  7. set /a "suma=0"
  8. set /a "operacion=0"
  9. :bucle
  10. if %i% equ %numero% (goto:end)
  11. set /a "operacion=%numero% %% %i%"
  12. if %operacion% equ 0 (set /a "suma+=%i%")
  13. set /a "i+=1"
  14. goto:bucle
  15. :end
  16. if %suma% equ %numero% (
  17. echo El numero es perfecto.
  18. ) else (
  19. echo El numero no es perfecto.
  20. )
  21. goto:eof
Salida:

Código:
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:\>
2470  Programación / Ejercicios / Posición en el abecedario [Batch] en: 12 Abril 2009, 01:54 am
Pedir una cadena al usuario, y de cada caracter de la cadena indicar que posición ocupa en el abecedario :
Código:
Cadena : Leonardo
L = 12
e = 5
o = 15
n = 14
a = 1
r = 18
d = 4
o = 15
Press any key...
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :code
  4. set /p "cadena=Cadena : "
  5. if not defined cadena (goto:code)
  6. set "abecedario=abcdefghijklmnopqrtsuvwxyz"
  7. set /a "longitud=0"
  8. set "cadena2=%cadena%"
  9. set /a "contador=1"
  10. :bucle
  11. if not defined cadena (goto:next)
  12. set "cadena=%cadena:~1%"
  13. set /a "longitud+=1"
  14. goto:bucle
  15. :next
  16. set /a "longitud-=1"
  17. for /l %%$ in (0,1,%longitud%) do (
  18. call :etiqueta !cadena2:~% style="color: #448888;">%$,1!
  19. )
  20. goto:eof
  21. :etiqueta
  22. set /a "contador=1"
  23. set "caracter=%1"
  24. for /l %%_ in (0,1,25) do (
  25. if /i ["!abecedario:~% style="color: #448888;">%_,1!"]==["% style="color: #448888;">caracter%"] (call:view !caracter! !contador!)
  26. set /a contador+=1
  27. )
  28. goto:eof
  29. :view
  30. echo %1 = %2
  31. goto:eof
  32.  
Páginas: 1 ... 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 [247] 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 ... 279
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines