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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 230 231 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 ... 279
2441  Programación / Scripting / Descubrimientos y tecnicas, comando FOR. [Batch] en: 10 Mayo 2009, 22:01 pm
1.-Otras formas de separar los elementos del conjunto en parametro /L:

Código:
FOR /L %variable IN (inicio, paso, fin) comando DO
Los elementos del conjunto FOR, los podiamos separar de la siguiente manera:
Código:
for /l %%_ in (1 1 10) do (Acciones)
for /l %%_ in (1,1,10) do (Acciones)
He experimentado con algunas otras:
Código
  1. for /l %%_ in (1;1;10) do (echo %%_)
  2. for /l %%_ in ([1;1;10]) do (echo %%_)
En este hubo un ligero cambio, no inició desde 1, sino desde 0, luego explicaré por qué.
Código
  1. for /l %%_ in ([1,1,10]) do (echo %%_)
Lo mismo, inicia desde 0.
Por qué inicia desde 0 y no de 1?
Aqui:
Código
  1. for /l %%_ in ([1,1,[10]]) do (
  2. echo %%_
  3. )
El primer 1 no es reconocido como un elemento valido y lo inicia desde 0, da lo mismo que hicieramos:
Código
  1. for /l %%_ in ("1" 1 20) do (echo %%_)
Igual lo iniciaría en 0.

Esto puede tener una aplicación práctica, ya sea para confundir un código:
Código
  1. for /l %%_ in (
  2. {[200]}
  3. 2
  4. 100
  5. ) do (
  6. echo %%_
  7. )
Se forza a que el primer elemento empieze por 0.

2.-Especificar numeros en hexadecimal como elementos del conjunto, para el parametro /L
Código:
FOR /L %variable IN (inicio, paso, fin) comando DO
Código
  1. for /l %%_ in (0x0001 0x0001 0x0064) do (echo %%_)
Muestra una lista desde 1 hasta 100.
Tambien se puede especificar valores negativos:
Código
  1. for /l %%_ in (-0x0004 0x0001 0X0064) do (echo %%_)
Combinar decimal con hexadecimal:
Código
  1. for /l %%_ in (0x0001 0x0001 100) do (echo %%_)
Más ejemplos:
Código
  1. for /l %%_ in (0x64 0x01 0xC8) do (
  2. echo %%_
  3. )
Código
  1. for /l %%_ in (0x01 0x01 0x64) do (
  2. echo %%_
  3. )

3.-Nueva forma de poner comentarios, sobre el conjunto del comando FOR, parametro /L
Código:
FOR /L %variable IN (inicio, paso, fin) comando DO
Código
  1. for /l %%_ in (1Uno 1Incremento_de_uno 100Hasta_100) do (
  2. echo %%_
  3. )
Como ven, se puede poner texto despues del elemento "inicio" "paso" y "fin".
Otra manera, a mi parecer mas comoda:
Código
  1. for /l %%_ in (2"Dos demas comentarios" 2"Dos dems comentarios" 100"Cien dems comentarios") do (
  2. echo %%_
  3. )
Otros ejemplos:
Código
  1. for /l %%_ in (
  2. 1-"Empezamos en uno"
  3. 1-"Con un incremento de una unidad"
  4. 100-"Terminamos en 100"
  5. ) do (
  6. echo %%_
  7. )
Incluso pueden poner caracteres especiales dentro del comentario, son completamente ignorados.

Combinadas todas las técnicas:
Código
  1. @echo off
  2. for /l %%_ in (
  3. {[-0x001E]}-"Especifico -30 en hexadecimal, pero es ignorado y empieza en 0, por los {[]}"
  4. ;2-"Especifico 2 en decimal, incrementa la unidad en 2"
  5. ;0x0064-"100 en hexadecimal, el loop termina en 100"
  6. ) do (
  7. echo %%_
  8. ping -n 1 loopback > nul 2>&1
  9. )
Salida:
Código:
0
2
4
6
8
10

Nota: Estas son cosas que he descubierto solo, si algunas de ellas ya estaban documentadas, haganmelo saber.

Leo Gutiérrez Ramirez.

Saludos.
2442  Programación / Scripting / Re: [Batch] Ejecutar multiples procesos en: 9 Mayo 2009, 07:08 am
Código:
@echo off
for %%: in (notepad.exe winver.exe iexplore.exe) do (
wmic process call create %%: > nul 2>&1
)
Saludos.
2443  Programación / Scripting / Re: [BATCH][Ayuda]con script para sabe el nombre de un archivo... en: 8 Mayo 2009, 06:40 am
Puedes utilizar algo como esto:

Código
  1. @echo off
  2. for /f "tokens=2* delims==" %%_ in (autorun.txt) do (
  3. echo %%_
  4. )

Salida:
autorun.txt

Código:
C:\>type autorun.txt
SHEll\EXPlorE\cOMmand= juyta.exe
SHEll\EXPlorE\cOMmand = ouyae.pif
SHEll\EXPlorE\cOMmand =gvaefo.cmd
C:\>
Código:
 juyta.exe
 ouyae.pif
gvaefo.cmd
2444  Programación / Scripting / Re: Problema con variables bash en: 5 Mayo 2009, 07:07 am
Tambien puedes usar algo como esto:
Código
  1. #!/usr/bin/bash
  2. texto=`cat file.txt`
  3. echo $texto
2445  Programación / Scripting / Re: [Batch] Función año bisiesto de 3 líneas. en: 5 Mayo 2009, 07:04 am
Excelente 0x0309, aun no sabia como usar los ! en el SET /a.

Saludos.
2446  Programación / Scripting / Re: Juego Ahorcado v.1.1 [Bash] en: 4 Mayo 2009, 19:29 pm
como lo corres???
Lo guardas con extensión .sh y lo corres:
Código:
bash ahorcado.sh
Gracias por la sugerencia, 0x0309, voy a tenerlo en cuenta, a ver si puedo acabarlo hoy.
2447  Programación / Scripting / Juego Ahorcado v.1.1 [Bash] en: 4 Mayo 2009, 06:57 am
Hola, hoy hice el juego del Ahorcado en Bash:


Solo hice el motor basico, luego dibujo el monito.
Código
  1. #!/usr/bin/bash
  2. # Juego de ahorcado
  3. # Leo Gutierrez R
  4. # leorocko13@hotmail.com
  5.  
  6. # Declarar seguir_o_no
  7. intentos=0
  8. contador=0
  9. function pause()   # Funcion pause, ya que no existe en linux
  10. {
  11. read -p "$*"
  12. }
  13. function limpiar()
  14. {
  15. clear
  16. }
  17. limpiar
  18. echo; echo Ahorcado v1.1, Leo Gutierrez Ramirez.; echo
  19. pause 'Presione una tecla para iniciar'.
  20. declare -a palabra_user[20];
  21. echo;
  22. read -p "Palabra : " palabra_user2                # Se lee la palabra
  23. let longitud=`expr length "$palabra_user2"`-1     # Sacar la longitud de la palabra:
  24. # echo $longitud
  25. for i in $(seq 0 $longitud);
  26. do
  27. palabra_user[$i]=${palabra_user2:$i:1}            # Se mete cada caracter en un subindice, en el array palabra_user[x]
  28. # echo palabra_user[$i] = ${palabra_user[$i]}
  29. done
  30. read -p "Defina el numero de intentos : " intentos       # No. de intentos que puede cometer el usuario.
  31. declare -a palabra_adivinar[$longitud];
  32. for i in $(seq 0 $longitud);
  33. do
  34. palabra_adivinar[$i]=_                            # Se meten guiones en cada subindice de palabra_adivinar[x]
  35. echo ${palabra_adivinar[$i]};
  36. done
  37. limpiar;
  38. # Mostrar guiones :
  39. while test $contador -le $intentos
  40. do
  41. echo;echo;
  42. for i in $(seq 0 $longitud);
  43. do
  44. echo -n "${palabra_adivinar[$i]} ";
  45. done
  46. echo;
  47. echo "Letra :                                                      Intentos: $contador de $intentos"
  48. read letra
  49. echo $palabra_user2 | grep "$letra" > nul 2>&1 || let contador+=1
  50. # Busqueda secuencial :
  51. for i in $(seq 0 $longitud);
  52. do
  53. if [ ${palabra_user[$i]} = "$letra" ];then
  54. palabra_adivinar[$i]=$letra
  55. fi
  56. done
  57. # Mostrar los guiones :
  58. echo;echo;
  59. for i in $(seq 0 $longitud);
  60. do
  61. echo -n "${palabra_adivinar[$i]} ";
  62. done
  63. echo;echo;
  64. limpiar
  65. # Aqui va el IF y el break:
  66. if [ "$contador" -ge "$intentos" ];
  67. then
  68. break
  69. fi
  70. i=0
  71. cadena_final=`while test $i -le $longitud; do echo -n ${palabra_adivinar[$i]}; let i+=1; done`
  72. # echo Cadena final : $cadena_final
  73. if [ "$cadena_final" == "$palabra_user2" ];
  74. then
  75. break;
  76. fi
  77. done
  78. if [ "$cadena_final" == "$palabra_user2" ];
  79. then
  80. echo Felicidades, has ganado.
  81. echo Ahorcado v1.1
  82. echo Leo Gutierrez R.
  83. elif [ "$cadena_final" -ne "$palabra_user2" ];
  84. then
  85. echo Lo siento, has perdido.
  86. echo Ahorcado v1.1
  87. echo Leo Gutierrez R.
  88. fi
  89. exit 0
  90.  

Si alguien me pudiera hacer el favor de decirme como dibujar el monito, se me hace demasiado tedioso hacerlo a mano.

Saludos.
2448  Programación / Scripting / Re: Tip sobre acentos en Batch. en: 2 Mayo 2009, 03:05 am
Es lo mismo:
Código:
C:\>copy con caracteres.txt
^A
^Q
^W
^E
^G


^K
^L
^Z
        1 archivos copiados.

C:\>type caracteres.txt










C:\>
O usar el teclado numerico + ALT.
2449  Programación / Scripting / Re: Tip sobre acentos en Batch. en: 1 Mayo 2009, 22:55 pm
A ver, voy a tratar de dejarlo claro con un ejemplo.

Hago una carpeta llamada "canción":
Código:
C:\>mkdir Canción

C:\>
Si quiero acceder a ella desde la misma shell:
Código:
C:\>cd canción

C:\Canción>
Me accede perfectamente.

Pero si lo quiero hacer desde un batch?:
Código:
@echo off
cd /d "%homedrive%\canción"
pause>nul
La salida que nos da:
Código:
El sistema no puede hallar la ruta especificada.
Ahora, usando este metodo:

Código:
C:\>copy con "acentos.txt"
á
é
í
ó
ú
^Z
        1 archivos copiados.

C:\>
Abro el archivo de texto y copio manualmente el ó.
Ahora cambio mi codigo por esto:
Código:
@echo off
cd /d "%homedrive%\canci¢n"
pause>nul
Y va a acceder perfectamente.

Saludos.
2450  Programación / Scripting / Re: Tip sobre acentos en Batch. en: 1 Mayo 2009, 22:37 pm
No, mira, segun tu linea de codigo :
Código:
@echo off
echo áéíóúÁÉÍÓÚ > "archivo.txt"
type "archivo.txt"
pause>nul
goto:eof
Veamos la salida:
Código:
ßÚݾ·┴╔═Ë┌
No representa lo mismo.
Ahora esto:
Código:
á
é
í
ó
ú
^Z
        1 archivos copiados.
á
é
í
ó
ú
Saludos.
Páginas: 1 ... 230 231 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 ... 279
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines