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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 [238] 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 ... 279
2371  Programación / Scripting / Re: Problema a la hora de descomprimir archivo con BATCH en: 7 Julio 2009, 03:23 am
Para descromprimir un .zip vas a necesitar usar la línea de comandos del Winrar o del Winzip.
2372  Programación / Scripting / Re: BATCH: copiar archivos a un listado de IP en: 4 Julio 2009, 07:19 am
Vas bien, para copiar has esto:
Código
  1. for /f "tokens=1" %%_ in (ip.txt) do (
  2. mkdir "\\%%_\Config\tmp"
  3. copy /y "ruta_de_mi_archivo.ext" "\\%%_\Config\tmp"
  4. )
2373  Programación / Ejercicios / Re: Algoritmia-Ejercicios introductorios. en: 3 Julio 2009, 19:30 pm
El 2 en Perl:
Código
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. print "Numero : ";
  5. my $numero = <stdin>;
  6. my $factorial = 1;
  7. for(my $i = 1; $i <= $numero; $i++)
  8. {
  9. $factorial *= $i;
  10. }
  11. print $factorial;
2374  Programación / Scripting / Re: dividir cadena letra por letra en: 3 Julio 2009, 18:46 pm
De nada.
2375  Programación / Scripting / Bug en CMD.EXE, comando FOR, parametro /F en: 3 Julio 2009, 03:44 am
Bug en comando FOR, parametro /f, opcion "USEBACKQ"

Este bug esta relacionado con el trato de cadenas.

La documentación sobre dicha opción dice:
       
Código:
usebackq        - especifica que la nueva semántica está vigente,
                          donde una cadena entre comillas inversas se ejecuta
                          como un comando y una cadena con comillas simples
                          es un comando de cadena literal y permite el uso de
                          comillas dobles para entrecomillar los nombres de
                          archivo en un grupo de nombres de archivos.
Es decir, cambia la semantica:
Código:
'' : Comandos
"" : Cadenas
No especificar comillas dobles o simples : Archivo.
Nos dice que para procesar cadenas, debemos usar comillas simples:

Código
  1. @echo off
  2. for /f "tokens=1 usebackq" %%_ in ('Leonardo') do (
  3. echo %%_
  4. )
Salida:
Código:
Leonardo

Como pueden ver, usamos comillas simples para tratar cadenas.

Sin la opción "usebackq" sería asi:
Código
  1. @echo off
  2. for /f "tokens=1" %%_ in ("Leonardo") do (
  3. echo %%_
  4. )
Salida:
Código:
Leonardo

Ahora, iré directo al problema que afecta a las opciones "useback" y "usebackq":

Esto produce un error:
Código
  1. @echo off
  2. for /f "tokens=1 usebackq" %%_ in ('1 2 3 4 5 6 7 8 10 11 12') do (
  3. echo %%_
  4. )
Salida:

Código:
C:\>code.bat
1
El sistema no puede encontrar el archivo Ɛ§㏀§럀§풘§>♂.

C:\>

Como ven, provoca un error, ya que busca un archivo, pero es claro que no estoy trabajando con archivos, sino con cadenas.

Estos también provocan error:

Código
  1. @echo off
  2. for /f "tokens=1 useback delims=" %%_ in ('p1 p2 p3 p4 p5 p6 p7 p8 p9') do (
  3. echo %%_
  4. )
Salida:
Código:

p1 p2 p3 p4 p5 p6 p7 p8 p9
El sistema no puede encontrar el archivo ?.

Código
  1. @echo off
  2. for /f "tokens=1-20 useback delims=_" %%a in ('p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14') do (
  3. echo %%a  
  4. )
Salida:
Código:
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
☼?♀\.stema no puede encontrar el archivo ?¶

En fin, esto esta probado en un Windows XP Professional Service Pack 3

Si me pudieran hacer el favor de probar si en otros sistemas falla, sino les da error, solo alteren la cantidad de tokens en el conjunto, asi:

Código
  1. @echo off
  2. for /f "tokens=1-20 usebackq" %%a in ('1 2 3 4 5 6 7 8 9 11 12 13 14 16 especificar ms tokens en caso de no ver error') do (
  3. echo %%a  
  4. )

Bueno, saludos.
2376  Programación / Scripting / Re: dividir cadena letra por letra en: 3 Julio 2009, 02:51 am
Código
  1. @echo off
  2. :code
  3. set /p "_palabra=Palabra : "
  4. if not defined _palabra (goto:code)
  5. set "palabra=%_palabra%"
  6. set /a "contador-=1"
  7. :strlen
  8. set "_palabra=%_palabra:~1%"
  9. set /a contador+=1
  10. if defined _palabra (goto:strlen)
  11. for /l %%_ in (0,1,%contador%) do (
  12. call echo %%palabra:~%%_,1%%
  13. )
  14. pause>nul
  15. exit /b 0

Salida:
Código:
Palabra : leonardo
l
e
o
n
a
r
d
o
2377  Programación / Scripting / Re: Simular Instalacion con Batch en: 2 Julio 2009, 00:24 am
Según el código si.
2378  Programación / Scripting / Re: Cerrado de archivo.bat en: 1 Julio 2009, 20:58 pm
Como bien dijeron, mata el proceso cmd.exe y msg.exe.

Puedes cerrar las ventanas del msg.exe asi:
Código:
:bucle
nircmd win close ititle "Mensaje desde"
goto:bucle
Código:
http://nirsoft.net/utils/nircmd.zip
2379  Programación / Ejercicios / Re: Problema: Búsqueda en Array en: 30 Junio 2009, 08:24 am
Lo hice a función y lo acorté:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void busqueda(signed int array[], signed int n_elementos, signed int numero);
  4. int main()
  5. {
  6.    signed int n_elementos, numero_usuario;
  7.    do
  8.    {
  9.    printf("\nNumero de elementos : ");
  10.    setbuf(stdin, NULL);
  11.    } while(scanf("%d", &n_elementos) != 1);
  12.    signed int *array = (int *)malloc(n_elementos * sizeof(int));
  13.    for(signed int i = 0; i < n_elementos; i++)
  14.    {
  15.        printf("array[%d] = ", i);
  16.        scanf("%i", &array[i]);
  17.    }
  18.    do
  19.    {
  20.    printf("Numero : ");
  21.    setbuf(stdin, NULL);
  22.    } while(scanf("%d", &numero_usuario) != 1);
  23.    busqueda(array, n_elementos, numero_usuario);
  24.    return 0;
  25. }
  26. void busqueda(signed int array[], signed int n_elementos, signed int numero_usuario)
  27. {
  28.    for(signed int i = 0; i < n_elementos; i++)
  29.        for(signed int j = 0; j < n_elementos; j++)
  30.            if(array[i] + array[j] == numero_usuario)
  31.                printf("array[%d] + array[%d] = %d\n", i, j, numero_usuario);
  32. }
  33.  

Salida:
Código:
C:\>codes.exe

Numero de elementos : 10
array[0] = 10
array[1] = 20
array[2] = 30
array[3] = 40
array[4] = 50
array[5] = 60
array[6] = 70
array[7] = 80
array[8] = 90
array[9] = 100
Numero : 50
array[0] + array[3] = 50
array[1] + array[2] = 50
array[2] + array[1] = 50
array[3] + array[0] = 50

C:\>
2380  Programación / Ejercicios / Re: Problema: Búsqueda en Array en: 30 Junio 2009, 08:13 am
Oh, ya entiendo un poco más, en caso de lo contrario hasmelo saber, a ver si era esto:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.    signed int n_elementos, numero_usuario;
  6.    do
  7.    {
  8.    printf("\nNumero de elementos : ");
  9.    setbuf(stdin, NULL);
  10.    } while(scanf("%d", &n_elementos) != 1);
  11.    signed int *array = (int *)malloc(n_elementos * sizeof(int));
  12.    for(signed int i = 0; i < n_elementos; i++)
  13.    {
  14.        printf("array[%d] = ", i);
  15.        scanf("%i", &array[i]);
  16.    }
  17.    do
  18.    {
  19.    printf("Numero : ");
  20.    setbuf(stdin, NULL);
  21.    } while(scanf("%d", &numero_usuario) != 1);
  22.    for(signed int i = 0; i < n_elementos; i++)
  23.    {
  24.        for(signed int j = 0; j < n_elementos; j++)
  25.        {
  26.            if(array[i] + array[j] == numero_usuario)
  27.            {
  28.                printf("array[%d] + array[%d] = %d\n", i, j, numero_usuario);
  29.            }
  30.        }
  31.    }
  32.    return 0;
  33. }
  34.  

Salida de ejemplo:

Código:
C:\>codes.exe

Numero de elementos : 10
array[0] = 10
array[1] = 20
array[2] = 30
array[3] = 40
array[4] = 50
array[5] = 60
array[6] = 70
array[7] = 80
array[8] = 90
array[9] = 100
Numero : 50
array[0] + array[3] = 50
array[1] + array[2] = 50
array[2] + array[1] = 50
array[3] + array[0] = 50

C:\>

Saludos.
Páginas: 1 ... 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 [238] 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 ... 279
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines