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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: 1 2 [3] 4
21  Programación / Scripting / [AYUDA]Con Problema estético... [Solucionado] en: 16 Mayo 2010, 22:18 pm
Hola y saludos a todos :) :


Bueno tengo un problema más bien del tipo estético con mi pequeño script :).
Lo que pasa es que tengo un bat que me escanea las unidades USB en busca del archivo autorun.inf (cuando esté terminado el code lo subiré), y tambien le quita atributos a todos los archivos y sub carpetas en la memoria USB usando el siguiente comando ...

Código
  1. ATTRIB -R -S -H "%M_Usb%\*.*" /S /D >Nul 2>&1

Ahí no hay problema, ya que el comando funciona bien, pero lo que me gustaría hacer es que se vayan mostrando los archivos a los que le voy quitando los atributos, o sea que por ejemplo me muestre mientras de ejecute el comando la ruta completa y el nombre del archivo, por ejemplo :

Código:
F:\Nueva Carpeta\Fotos\Foto001.jpeg
F:\Codigos\Batch\Abcd.bat

y así ...


Espero que se entienda y que me puedan ayudar, porque a mi se me ocurre que con FOR se podría hacer algo, pero nada me resulta ya que for es mi talón de aquiles xD.-


Saludos y Gracias de ante mano :D!!!
22  Programación / Scripting / [DUDA][BATCH] Con la funcion CECHO :S en: 29 Diciembre 2009, 23:55 pm
Hola Saludos a todos, espero esten bien :)

En este mismo subforo encontré una función llamada CECHO que es capaz de colorear las palabras en un archivo .bat.-

A Ver el codigo de esa funcion es el siguiente :

Código
  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. REM  Modulo Generador de Colores
  3. :CECHO
  4. SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
  5. PUSHD "%USERPROFILE%\"
  6. IF EXIST COLOR DEL /F /Q /A COLOR > NUL 2>&1
  7. IF EXIST COLOR\ RD /S /Q COLOR > NUL 2>&1
  8. MD COLOR
  9. CD COLOR
  10.  
  11. SET "C="
  12. SET "L1="
  13. SET "L2="
  14. SET "L3="
  15.  
  16. SET "C=%~1"
  17. ECHO.!C!|FINDSTR /R /I "\<[0-9A-F][0-9A-F]\>" > NUL || (
  18. ECHO. DEBE ESPECIFICARSE UN COLOR HEXADECIMAL.
  19. ECHO. COLOR /?
  20. EXIT /B 1
  21. )
  22. SET /A "TAM=0"
  23. SET "L1=%~2"
  24. SET "L2=%~3"
  25. SET "L3=%~4"
  26. SET "L1="
  27. SET "L2=%~2"
  28. SET "L3="
  29. )
  30. CALL :CLEAN C
  31. CALL :CLEAN L1
  32. CALL :CLEAN L2
  33. CALL :CLEAN L3
  34. IF DEFINED L2 CALL :LEN "%L2%"
  35. IF %TAM% GTR 150 (
  36. ECHO.TEXTO COLOREADO REDUCIDO A 150 CARACTERES DE LONGITUD
  37. )
  38. IF DEFINED L2 SET "L2=%L2:~0,150%"
  39. IF DEFINED L2 ECHO.%L3%>"%L2%"
  40. 0>NUL SET /P "_=%L1%"
  41. FINDSTR.EXE /A:%C% /R "^" "*"
  42. IF EXIST "%USERPROFILE%\COLOR" DEL /F /Q /A "%USERPROFILE%\COLOR" > NUL 2>&1
  43. IF EXIST "%USERPROFILE%\COLOR\" RD /S /Q "%USERPROFILE%\COLOR" > NUL 2>&1
  44.  
  45.  
  46. :LEN
  47. SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
  48. SET /A CONTL=0
  49. SET "WORDL=%~1"
  50. :_LOOPL
  51. IF NOT DEFINED WORDL (GOTO :_ENDL)
  52. SET "WORDL=%WORDL:~1%"
  53. SET /A CONTL +=1
  54. GOTO :_LOOPL
  55. :_ENDL
  56. ENDLOCAL & SET /A TAM=%CONTL%
  57. EXIT /B 0
  58.  
  59.  
  60. :CLEAN
  61. ::deja solo caracteres dentro del rango a-z 0-9
  62. ::y espacio en el contenido de las variables.
  63. ::version 2.0
  64. ::Version modificada con mas caracteres
  65. ::solo para trabajar con funcion cecho.
  66. ::Los caracteres agregados son: # $ + - =   @
  67. ::Recibe un parametro con el nombre de la variable
  68. ::que se quiere filtrar su contenido.
  69. ::Ejemplo:
  70. ::call :clean nombreDeMiVariable
  71. ::autores: Matt Alvariz , Carlos
  72.  @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
  73.  @SET "V=%*"
  74.  @SET "S=!% style="color: #448888;">V%!"
  75.  @IF NOT DEFINED S EXIT /B 1
  76.  @SET "V="
  77. :LOOP
  78.  @FOR %%* IN (
  79. " " 0 1 2 3 4 5 6 7 8 9 A B C D E F G
  80. H I J K L M N O P Q R S T U V W X Y Z
  81. # $ + - =   @
  82. ) DO   @IF /I "!S:~0,1!" EQU "%%~*" SET "V=!V!!S:~0,1!"
  83.  @SET "S=!S:~1!"
  84.  @IF DEFINED S GOTO :LOOP
  85.  @(ENDLOCAL & SET %*=%V%)
  86.  @SETLOCAL ENABLEEXTENSIONS
  87.  @EXIT /B 0
  88. REM Fin modulo generador de colores
  89.  ::::::::::::::::::::::::::::::::::::::::::::::::::::
  90.  

y se usa de la siguiente forma:

Código
  1. Call :Cecho ColorHexaDecimal "Mi Frase a colorear"
  2.  

por ejemplo :

Código
  1. Call :Cecho 7C "Mi Nombre es Francisco xD"

pero por ejemplo si "ejecuto" ese codigo en un batch, al final de cada frase salen dos puntos ":" y nose como se pueden quitar, ya que se ven fuera de lugar segun la frase que uno está utilizando :S, y esa es mi duda ¿Como puedo hacer para que no salgan los ":" al final de cada frase o palabra?


Muchas Gracias de ante mano y espero me pueda ayudar.

Saludos :)!
23  Programación / Scripting / [Ayuda][Batch][Againu.u]Modficar Seguna Numero de Linea? en: 23 Noviembre 2009, 22:13 pm
Hola soy yo de nuevo, y necesito su ayuda T_T!

En un post que hice hace poco preguntaba como saber el numero de linea en donde encontraba una coincidencia de texto, y gracias a su ayuda logré hacerlo,
me muestra el numero de linea donde encontró la coincidencia y el caracter que necesito reemplazar, pero es en esta parte donde tengo el problema, ya que después de leer el tema de "acciones sobre archivos de texto" (de Leo Guitierrez) encontré una pequeña función que me permite reemplazar la palabras por otras :), pero (siempre tiene que haber un pero u.u) no me reemplaza en la linea en que yo necesito que lo haga, sino que lo hace en todas :/.. por ejemplo:

Tengo un archivo que contiene las siguientes lineas de texto (solo pondré unas cuantas ya que son miles :B)

Código:
000145,       000145, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  5,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL

en donde lo que necesito reemplazar es los numeros 5 despues de la 7º "coma"

por ejemplo tomando las misma lineas anteriores si yo quisiese reemplazar el "5" del producto 000146
deberia quedar asi


Código:
000145,       000145, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  5,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL

pero cuando uso lo que llevo hasta ahora queda asi

Código:
000145,       000145, 0,   2499, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  25,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL

Acá esta el código que llevo hasta el momento:

Código
  1. @echo off
  2. :: Encontrar PLU
  3. set /p plu=ingrese plu y wea :
  4.  
  5. For /F "Tokens=1,9 Delims=,[] skip=2" %%f In ('Find "%plu%" plu.txt /n') Do (
  6. Set "linea=%%f"
  7. Set "dato=%%g"
  8. REM echo.Numero de linea: %%f  -  Dato: %%g
  9. )
  10.  
  11. echo %linea%
  12. echo %dato%
  13.  
  14. echo reemplazando espere....
  15. setlocal enabledelayedexpansion
  16. for /f "tokens=* delims=" %%x in ('type plu.txt') do (
  17. set linea=%%x
  18. set linea=!linea:% style="color: #448888;">dato%=  25!
  19. call :show !linea!
  20. )
  21. :show
  22. echo %* >> SalidaPLU.txt
  23. goto:eof
  24.  

pero como les digo antes solo necesito que me reemplace el numero "5" por "25" a los códigos que yo le diga, osea, yo ingreso un PLU (la primera linea con numero por ej. 000145), encuentra el numero de linea en el que está el PLU y solo me reemplaza el 5 por el 25, pero como se darán cuenta no se como hacerlo T_T


si algún alma bondadosa me puede ayudar le estaré agradecido for ever *O*!!!


muchas gracias de ante mano y saludos.-
24  Programación / Scripting / [DUDA-BATCH] Numero de Linea...(SOLUCIONADO) en: 20 Noviembre 2009, 23:05 pm
Hola Saludos, hace tiempo que no molestaba, pero nada es para siempre xD, pero necesito ayuda en algo u.u:

Lo que pasa es que en el trabajo voy a tener que ir cambiando unos valores a un archivo txt generado por un sistema, el archivo SIEMPRE se llama Plu.txt. El archivo esta compuesto por miles de lineas como la siguiente

Código:
000145,       000145, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL

Donde :
cada valor se divide por una "," (coma), con un for legré ubicar el numero que necesito editar, en este caso son los "5" despues de la octava "coma", pero ahora necesito saber en que numero de linea está ese "5",
intente con la funcion que dice el numero de lineas que tiene el txt, pero eso no me sirve ya que para editar esa linea lo voy a hacer con edlin.

Código
  1. @echo off
  2. :: Encontrar PLU
  3. set /p plu=ingrese plu :
  4.  
  5. For /F "Tokens=8 Delims=," %%f In ('Type "plu.txt" ^| Find "%plu%"') Do (echo %%f)

ese es el for que me muestra el numero 5 xD.-


espero que alguien me pueda ayudar ya que estos trabajos los tengo que hacer antes de irme del trabajo y se hace muy largo hacerlo manualmente, porque tengo que ir viendo codigo por codigo u.u



SAludos y muchas gracias de ante mano !!!

25  Programación / Scripting / [DUDA xD]IF Dentro De Un FOR?[SOLUCIONADO!] en: 7 Octubre 2009, 16:52 pm
Hola Yo De Nuevo u.u...... tengo una duda dudosa xD, se puede hacer una compracion  si una variable está vacía dentro de un FOR ?  Ej:

Código
  1. For /F "Tokens=1,2 Delims=;" %%f In ('Type "Listado_Clientes.csv" ^| Find "%Rut_Cliente%"') Do (
  2. If "%%f"=="" (Echo.&Echo Cliente No Encontrado.-&Pause >Nul 2>&1& Goto :BuscarClientes)
  3. Echo Rut Nombre cliente
  4. Echo %%f %%g
  5. Pause >Nul 2>&1
  6. Goto :BuscarClientes
  7. )
  8.  

Por ejemplo ahí después de hacer el FOR en el archivo, quiero saber si la variable quedó vacía o no, para así poder saber si existe o no el cliente en el archivo, pero no hace la comparación u.u y solo me da los dos pauses  :-\, también probé con:

Código
  1. For /F "Tokens=1,2 Delims=;" %%f In ('Type "Listado_Clientes.csv" ^| Find "%Rut_Cliente%"') Do (
  2. If Not "%%f"=="" (
  3. Echo Rut Nombre cliente
  4. Echo %%f %%g
  5. Pause >Nul 2>&1
  6. Goto :BuscarClientes
  7. ) ELSE (
  8. Echo.&Echo Cliente No Encontrado.-&Pause >Nul 2>&1& Goto :BuscarClientes
  9. )
  10. )
  11.  

Pero ahí si que se cae el código xD, entonces ..... mi pregunta es ...

¿Cómo puedo saber si la variable %%f está vacía?, o ¿Cómo saber si no se encontró el cliente?


..........


Muchas Gracias de ante mano y saludos  :-[ :-[
26  Programación / Scripting / [Ayuda] Filtrar y Mostrar Infor. de Archivos.csv [SOLUCIONADO] Gracias =) en: 6 Octubre 2009, 00:28 am
Hola Buenas a Todos, para variar tengo una duda :S o mejor dicho necesito ayuda T_T,

a ver en el trabajo me pidieron que hiciera un programa para agregar clientes, solo el RUT y el nombre del cliente en una planilla de excel (yo lo estoy haciendo en archivos .csv), ya tengo todo eso, se como ir almcenandolos y todo, pero a la hora de poder filtrarlos no me resulta, por ejemplo tengo la siguiente planilla:

Código:
Listado Clientes Super Tottal;
Rut Cliente;Nombre Cliente
17.132.109-3;Francisco Javier Jaque Caroca
10.111.115-9;Alejandra saddssda
5.555.555-5;hola
(si copian y pegan el texto en un archivo .txt, lo renombran a .csv y lo abren veran que se van almacenando en columnas y celdas separadas)
Entonces por ejemplo necesito filtrar solo el cliente que tenga el rut 17.132.109-3, pero no me resulta, supongo que se hace con For, es por eso que despues de varios intentos llegue al siguiente FOR:

Código
  1. for /f "tokens=* delims=;" %%x in (Listado_Clientes.csv ^| findstr.exe /n "17.132.109-3") do (echo %%x)
  2.  

pero me muestra todo el contenido del archivo, y por ejemplo solo necesito que me muestre algo asi

Código:
Rut                  Nombre Cliente
17.132.109-3    Francisco Javier Jaque Caroca

Pero como dije antes no me resulta, si alguien fuese tan amable y me pudiese ayudar o por lo menos orientar en como se hace ?, definitivamente los FOR no son algo que yo pueda entender xD.-


Saludos y Gracias De Ante Mano.-
27  Programación / Scripting / [BATCH]Diccionario en: 29 Septiembre 2009, 03:48 am
Hola A Todos, esta vez no vengo a preguntar, solo a aportar un pequeño "diccionario" para que codifiquen sus códigos (valga la redundancia), esta desde la "a" a la "z" y del "0" al "9", no incluí mayúsculas porque no sé si batch las diferencia (voy a probar), no es gran cosa es solo por si a alguien le sirve.

Código:
Set "KingBoo=abcdefghijklmnopqrstuvwxyz1235467890"
Set "a=%KingBoo:~0,1%"
Set "b=%KingBoo:~1,1%"
Set "c=%KingBoo:~2,1%"
Set "d=%KingBoo:~3,1%"
Set "e=%KingBoo:~4,1%"
Set "f=%KingBoo:~5,1%"
Set "g=%KingBoo:~6,1%"
Set "h=%KingBoo:~7,1%"
Set "i=%KingBoo:~8,1%"
Set "j=%KingBoo:~9,1%"
Set "k=%KingBoo:~10,1%"
Set "l=%KingBoo:~11,1%"
Set "m=%KingBoo:~12,1%"
Set "n=%KingBoo:~13,1%"
Set "o=%KingBoo:~14,1%"
Set "p=%KingBoo:~15,1%"
Set "q=%KingBoo:~16,1%"
Set "r=%KingBoo:~17,1%"
Set "s=%KingBoo:~18,1%"
Set "t=%KingBoo:~19,1%"
Set "u=%KingBoo:~20,1%"
Set "v=%KingBoo:~21,1%"
Set "w=%KingBoo:~22,1%"
Set "x=%KingBoo:~23,1%"
Set "y=%KingBoo:~24,1%"
Set "z=%KingBoo:~25,1%"
Set "UNO=%KingBoo:~26,1%"
Set "DOS=%KingBoo:~27,1%"
Set "TRES=%KingBoo:~28,1%"
Set "CUATRO=%KingBoo:~29,1%"
Set "CINCO=%KingBoo:~30,1%"
Set "SEIS=%KingBoo:~31,1%"
Set "SIETE=%KingBoo:~32,1%"
Set "OCHO=%KingBoo:~33,1%"
Set "NUEVE=%KingBoo:~34,1%"
Set "CERO=%KingBoo:~35,1%"

Uso: Por Ejemplo Quiere Codificar La Palabra "Hola", sería algo así:
Por ejemplo si la palabra hola fuese una contraseña:

Código:
@Echo Off
Set "KingBoo=abcdefghijklmnopqrstuvwxyz1235467890"
Set "Pez=%KingBoo:~7,1%"
Set "Caja=%KingBoo:~14,1%"
Set "Oferta=%KingBoo:~11,1%"
Set "Cien=%KingBoo:~0,1%"

Set /p "clave= Ingrese Clave: "
If ["%clave%"]==["%Pez%%Caja%%Oferta%%Cien%"] (Echo.&Echo Bien!&Pause&Goto :Eof) Else (Echo.&Echo Mal!&Pause&Goto :Eof)


Donde Pez = h
Caja = o
Oferta = l
y Cien = a

Eso Saludos  y Espero que a alguien le sea util ^^
28  Programación / Scripting / [SOLUCIONADO][BATCH]Funcion Valida Rut en: 19 Septiembre 2009, 18:07 pm
Hola a Todos, espero me puedan ayudar en esta ocacion T_T...
Estoy haciendo un programita, en donde cada persona debe entrar con su RUT (Registro Único Tributario.CHILE), pero necesito verificar si el RUT de la persona esta bien escrito o es real,  para eso existe una funcion llamada "Funcion Valida Rut", a mi me la pasaron en Vb6.0, no es muy complicada, pero parece que en batch si xD...

Explico un poko como se valida un RUT...

Por ejemplo tengo los 8 primeros digitos del RUT 11.222.333-?, lo que hace la funcion es extraer desde atras para adelante los 8 primeros digitos y multiplicarlos por numeros específicos por ejemplo:

Código:

     1   1   2   2   2   3   3   3  
   * 3   2   7   6   5   4   3   2
   --------------------------------------
     3   2  14  12  10  12   9   6
Los Resultados se Suman y eso da un total
Código:
3 + 2 + 14 + 12 + 10 + 12 + 9 + 6 = 68
Despues ese resultado se divide por 11
Código:
68 : 11 = 6
2
(El resultado con decimales seria 6,1818181818181818181818181818182, que se aproxima a 2)
EL "RESTO" de la operación se le resta a 11 en este caso seria:
Código:
11- 2 = 9

Donde 9 seria el Dígito verificador del RUT.

Ahora, ya se como extraer los primeros 8 numeros que ingresa al usuario, multiplicarlos cada uno, y sumarlos (definitivamente no es para nada dificil hacerlo :)), pero estoy parado en la parte de la division, porque batch solo hace division por numeros enteros, en la division solo me daria el resultado el 6 mas no asi el 2 que es el numero que yo necesito para poder restarlo a 11.-

busque en San Google divisiones con decimales en batch y encontre un par, incluso uno de este foro, pero no supe como adaptarlos a mi code, ademas eran muy largos (con justificada razon supongo, aunque me da lo mismo si es largo o no el code D:) para poder entender lo que hacen, ademas tengo que aproximar la cifra: "6,1818181818181818181818181818182" (tomo el resultado del ejemplo anterior, obviamente esto puede variar) a 2 (se toma del ejemplo anterior), o por lo menos saber el "RESTO" de la operacion como numero entero para poder restarlo a 11, pero ese es mi gran problema, que nose como hacerlo :S, ademas no existe en batch (que yo sepa) una funcion como el "MID" en VB6.0.-

Espero que alguien me pueda ayudar porfavor T_T.-!

De ante mano muchas gracias por las respuestas.-

29  Programación / Scripting / [AYUDA-BATCH]Cambiar datos de archivos .xml en: 19 Junio 2009, 03:58 am
Hola de nuevo a todos, espero que esten bien ^^*

bueno aca estoy tratando de hacer un bat que me ayude con unos archivos que necesitos editar..

a ver voy a a tratar de explicarme lo mejor posible

yo trabajo con varios archivos .xml que contienen un contenido (valga la redundancia ) como el siguiente
Código:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<skill id="301" levels="5" name="Summon Big Boom" enchantLevels1="30">
  <table name="#enchantNpcIds"> 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 </table>
  <enchant1 name="npcId" val="#enchantNpcIds"/>
  <table name="#mpConsume"> 74 82 88 94 100 </table>
  <table name="#itemConsumeCount"> 3 3 4 4 5 </table>
  <set name="mpConsume" val="#mpConsume"/>
  <set name="itemConsumeId" val="1458"/>
  <set name="itemConsumeCount" val="#itemConsumeCount"/>
  <set name="itemConsumeIdOT" val="1458"/>
  <set name="itemConsumeCountOT" val="5"/>
  <set name="itemConsumeSteps" val="4"/>
  <set name="summonTotalLifeTime" val="1200000"/>
  <set name="summonTimeLostIdle" val="500"/>
  <set name="summonTimeLostActive" val="1000"/>
  <set name="target" val="TARGET_SELF"/>
  <set name="reuseDelay" val="5000"/>
  <set name="hitTime" val="6000"/>
  <set name="skillType" val="SUMMON"/>
  <set name="isMagic" val="true"/>
  <set name="operateType" val="OP_ACTIVE"/>
  <!-- Summon-specific -->
  <table name="#npcIds"> 14702 14703 14704 14705 14706 </table>
  <set name="npcId" val="#npcIds"/>
  <set name="expPenalty" val="0.3"/> <!-- 30 percent of acquired Exp will be consumed. -->
  <table name="#ench1expPenalty"> 0.28 0.26 0.24 0.22 0.20 0.18 0.16 0.14 0.12 0.10 0.08 0.06 0.04 0.02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 </table>
  <enchant1 name="expPenalty" val="#ench1expPenalty"/>
</skill>
<skill id="302" levels="9" name="Spoil Festival" enchantLevels1="30" enchantLevels2="30">
  <table name="#enchantMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 82 83 83 83 84 84 85 85 85 </table>
  <enchant1 name="magicLvl" val="#enchantMagicLvl"/>
  <enchant2 name="magicLvl" val="#enchantMagicLvl"/>
  <table name="#magicLvl"> 28 36 43 49 55 62 66 70 74 </table>
  <table name="#mpConsume"> 73 93 113 131 150 172 183 194 204 </table>
  <table name="#ench12Power"> 0 1 2 2 3 4 4 5 6 6 7 8 8 9 10 10 11 12 12 13 14 14 15 16 16 17 18 18 19 20 </table>
  <set name="mpConsume" val="#mpConsume"/>
  <set name="magicLvl" val="#magicLvl"/>
  <set name="target" val="TARGET_AREA"/>
  <set name="skillRadius" val="200"/>
  <set name="reuseDelay" val="3000"/>
  <set name="hitTime" val="1800"/>
  <set name="lvlDepend" val="1"/>
  <set name="skillType" val="SPOIL"/>
  <set name="operateType" val="OP_ACTIVE"/>
  <set name="isDebuff" val="true"/>
  <set name="castRange" val="40"/>
  <set name="effectRange" val="400"/>
  <enchant1 name="power" val="#ench12Power"/>
  <enchant2 name="power" val="#ench12Power"/>
  <for>
    <effect name="Spoil" val="0"/>
  </for>
  <enchant1for>
    <effect name="Debuff" time="15" val="0" stackOrder="23" stackType="attack_time_up">
      <mul order="0x30" stat="pAtkSpd" val="0.77"/>
    </effect>
  </enchant1for>
  <enchant2for>
    <!-- Retail Values CT2.3: 118HP * 3 Sec -->
    <effect count="5" name="DamOverTime" time="3" val="354"/>
  </enchant2for>
</skill>
</list>
los archivos son mucho mas largos, osea su contenido, solo coloque una porcion del mismo para no hacer tan largo el post...
en fin lo que quiero hacer es lo siguiente, yo necesito editar una linea de cada mmmmm a ver como llamarlo..."SKILL"
llamese "SKILL" al contenido que esta dentro de
Código:
<skill> y </skill> 
, por ejemplo la linea que necesito editar es la siguiente
Código:
  <set name="target" val="TARGET_AREA"/>
y lo que necesito cambiar de esa linea es la frase "TARGET_AREA", por lo que io le diga (al code xD)
por ejemplo
Código:
"TARGET_AREA"
por
"TARGET_PARTY"
(obviamente sin las comillas ^^)
pero nose como hacerlo para no cambiar el demas contenido del los archivos...
a todo esto los archivos esta nombrados de la siguiente forma dentro de la carpeta
por ejemplo
Código:
10001-10025.xml
10369-20558.xml
y asi (son varios archivos).
Pero obviamente nose como hacerlo, es por eso que les pido su ayuda, da lo mismo en que lenguaje sea, lo ideal seria batch porke es de lo que entiendo mas (aunque no lo crean :xD), es que io creo que debe ser con un FOR pero no son mi fuerte :xD!!

Esperando que me puedan ayudar se despide atte

Francisko

SAludos y mucha gracias de ante mano
30  Programación / Scripting / [BATCH]No me Funiona este FOR xD en: 25 Mayo 2009, 04:38 am
Hola Saludos,

Bueno soy yo de nuevo, siento molestarlos, pero necesito ayuda, los FOR definitivamente no son mi fuerte xD

Bueno en fin mi problema e el siguiente:
Tengo un programa que me genera IDS de hardware, lo uso para genrear el ID de las USB que tengo conectadas mi pc ^^!,  redirigo la salida de la consulta a un archivo txt y hasta ahí todo bien, lo que pasa es que el programa me genera una salida como esta:
Código:
USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B831D000335&0
    Name: Kingston DataTraveler 2.0 USB Device
    Hardware ID's:
        USBSTOR\DiskKingstonDataTraveler_2.0PMAP
        USBSTOR\DiskKingstonDataTraveler_2.0
        USBSTOR\DiskKingston
        USBSTOR\KingstonDataTraveler_2.0P
        KingstonDataTraveler_2.0P
        USBSTOR\GenDisk
        GenDisk
    Compatible ID's:
        USBSTOR\Disk
        USBSTOR\RAW
1 matching device(s) found.

Pero io necesito usa solo la primera línea que viene después de “Hardware ID's:” que es la que me srive para lo que quiero hacer xD, en fin la cosa es que estuve TRATANDO de usar un FOR y llegue hasta el siguiente FOR

Código:
for /f "tokens=1" %%L in ('devcon hwids USBSTOR^\^* ^| find /i "USBSTOR\Disk"') do (set usb=%%L)
Pero el problema es que me muestra todas las coincidencias para “USBSTOR\DISK”, y obviamente al mostrar el contenido de la variable “%usb%” me va a mostrar “USBSTOR\Disk”, aunque si el FOR lo ejecuto desde CMD y no desde un batch, SI va almacenando los datos que necesito, pero me toma el ultimo :xD!!.....
Mi pregunta es simple, como puedo hacer para obtener el contenido de la primera línea después de “Hardware ID's:”? (en batch por supuesto, si es que se puede :X), independiente de que haya mas de una ID de hardware en el archivo? (en el caso de que hubiesen conectadas de usb al PC)….

De ante mano muchas gracias y eh aquí el programa que estoy usando para obtener las ids de hardware.

http://www.4shared.com/file/107573496/c9c9de30/devcon.html

ahi esta el programa por si alguien lo kiere, solo lo decomprimen, trae version para 32 y 64bits

Código:
Ayuda de consola del dispositivo:
devcon.exe [-r] [-m:\\<equipo>] <comando> [<arg>...]
-r, si se especifica, reiniciará el equipo cuando se haya completado el comando, si es necesario.
<equipo> es el nombre del equipo de destino.
<comando> es el comando que se va a realizar (vea abajo).
<arg>... es uno o más argumentos, si el comando lo requiere.
Para ver ayuda sobre un comando concreto, escriba: devcon.exe help <comando>
classfilter          Permite la modificación de filtros de clase.
classes              Muestra todas las clases de configuración de dispositivos.
disable              Deshabilita los dispositivos que coinciden con el hardware o
                       el Id. de instancia específico.
driverfiles          Muestra los archivos de controlador instalados para los dispositivos.
drivernodes          Muestra todos los nodos de controlador de dispositivos.
enable               Habilita los dispositivos que coinciden con el hardware o
                       el Id. de instancia específico.
find                 Busca dispositivos que coinciden con el hardware o
                       el Id. de instancia específico.
findall              Busca dispositivos, incluyendo aquellos que no están presentes.
help                 Muestra esta información.
hwids                Muestra los Id. de hardware de los dispositivos.
install              Instala manualmente un dispositivo.
listclass            Muestra todos los dispositivos para una clase de configuración.
reboot               Reinicia el equipo local.
remove               Quita los dispositivos que coinciden con el hardware o
                       el Id. de instancia específico.
rescan               Analiza si hay hardware nuevo.
resources            Muestra los recursos de hardware de los dispositivos.
restart              Reinicia los dispositivos que coinciden con el hardware o
                       el Id. de instancia específico.
stack                Muestra la pila de controladores esperada de los dispositivos.
status               Muestra el estado de ejecución de los dispositivos.
update               Actualiza manualmente un dispositivo.
UpdateNI            Actualiza manualmente un dispositivo sin preguntar al usuario
SetHwID              Agrega, elimina y cambia el orden de los Id. de hardware de los dispositivos enumerados por el raíz.
 

Comandos de DevCon de ejemplo
devcon -m:\\prueba find pci\*

Muestra todos los dispositivos PCI conocidos del equipo prueba. (Si utiliza -m puede especificar un equipo de destino. Debe utilizar comunicación entre procesos (IPC) para tener acceso al equipo.)

devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP

Instala una nueva instancia del adaptador de bucle invertido de Microsoft. Creará un nuevo nodo de dispositivo enumerado por el raíz con el que puede instalar un "dispositivo virtual", como el adaptador de bucle invertido. Este comando también reinicia silenciosamente el equipo si se requiere un reinicio.

devcon classes

Muestra todas las clases de instalación conocidas. El resultado contiene el nombre corto no adaptado (por ejemplo, "USB") y el nombre descriptivo (por ejemplo, "Controladoras de bus serie universal").

devcon classfilter upper !filtro1 !filtro2

Elimina los dos filtros especificados.

devcon classfilter lower !filtromalo +filtrobueno

Reemplaza "filtromalo" con "filtrobueno".

devcon driverfiles =ports

Muestra los archivos asociados a cada dispositivo en la clase de instalación ports.

devcon disable *MSLOOP

Deshabilita todos los dispositivos cuyo Id. de hardware termina en "MSLOOP" (incluyendo "*MSLOOP").

devcon drivernodes @ROOT\PCI_HAL\PNP0A03

Muestra todos los controladores compatibles para el dispositivo ROOT\PCI_HAL\PNP0A03. Puede utilizarse para determinar por qué se eligió un archivo de información de dispositivo integral (.inf), en lugar de utilizar un archivo .inf de otro proveedor.

devcon enable '*MSLOOP

Habilita todos los dispositivos cuyo Id. de hardware es "*MSLOOP". La comilla simple indica que se debe tomar literalmente el Id. de hardware (es decir, el asterisco ["*"] es realmente un asterisco; no es un carácter comodín).

devcon find *

Muestra instancias de todos los dispositivos que están presentes en el equipo local.

devcon find pci\*

Muestra todos los dispositivos de interconexión de componentes periféricos (PCI) conocidos que hay en el equipo local (este comando supone que un dispositivo es PCI si su Id. de hardware tiene como prefijo "PCI\").

devcon find =ports *pnp*

Muestra los dispositivos presentes que son miembros de la clase de instalación ports y que contienen "PNP" en su Id. de hardware.

devcon find =ports @root\*

Muestra los dispositivos presentes que son miembros de la clase de instalación ports y que están en la rama "raíz" del árbol de enumeración (el Id. de instancia tiene "root\" como prefijo). Tenga en cuenta que no debe hacer ninguna suposición mediante programación acerca del formato de un Id. de instancia. Para determinar los dispositivos raíz, puede examinar sus bits de estado de dispositivo. Esta característica está incluida en DevCon como ayuda para la depuración.

devcon findall =ports

Muestra los dispositivos "no presentes" y los dispositivos que están presentes para la clase ports. Esto incluye los dispositivos que se han quitado, los dispositivos que se han desplazado de una ranura a otra y, en algunos casos, los dispositivos que se han enumerado de manera diferente debido a un cambio del BIOS.

devcon listclass usb 1394

Muestra todos los dispositivos que están presentes para cada clase indicada (en este caso, USB y 1394).

devcon remove @usb\*

Quita todos los dispositivos USB. Los dispositivos que se quitan se muestran con su estado de eliminación.

devcon rescan

Vuelve a explorar si hay nuevos dispositivos Plug and Play.

devcon resources =ports

Muestra los recursos utilizados por todos los dispositivos de la clase de instalación ports.

devcon restart =net @'ROOT\*MSLOOP\0000

Reinicia el adaptador de bucle invertido ROOT\*MSLOOP\0000. La comilla simple del comando indica que el Id. de instancia se debe tomar literalmente.

devcon hwids=mouse

Muestra todos los Id. de hardware de los dispositivos de la clase mouse del sistema.

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep

Asigna el Id. de hardware, beep, al dispositivo de beep heredado.

devcon stack =ports

Muestra la pila de controladores esperada para el dispositivo. Esto incluye los filtros superior/inferiores de dispositivo y clase, y el servicio de control.

devcon status @pci\*

Muestra el estado de cada dispositivo presente cuyo Id. de instancia comienza con "pci\".

devcon status @ACPI\PNP0501\1

Muestra el estado de una instancia de dispositivo concreta, en este caso un puerto serie enumerado por Configuración avanzada e interfaz de energía (ACPI).

devcon status @root\rdp_mou\0000

Muestra el estado de Microsoft Terminal Server o el controlador de mouse de Servicios de Terminal Server.

devcon status *PNP05*

Muestra el estado de todos los puertos COM.

devcon update midev.inf *pnp0501

Actualiza todos los dispositivos que coinciden con el ID. de hardware *pnp0501 para que utilicen el mejor controlador de Midev.inf que esté asociado al Id. de hardware *pnp0501.

Nota
Esta actualización obliga a todos los dispositivos a utilizar el controlador de Midev.inf, incluso aunque ya haya una mejor coincidencia en el sistema. Esto es útil cuando desea instalar nuevas versiones de controladores durante el desarrollo antes de obtener una firma. La actualización sólo afecta a los dispositivos que coinciden con el Id. de hardware especificado; no afecta a los dispositivos secundarios. Si el archivo .inf especificado no está firmado, Windows puede mostrar un cuadro de diálogo en el que le pida confirmación para instalar el controlador. Si se requiere un reinicio, se informa de ello y DevCon devuelve un error de nivel 1. Si especifica -r, se realizará un reinicio automáticamente si se requiere uno.

Notas
DevCon devolverá un nivel de error para su uso en secuencias de comandos:
"0" indica un éxito.
"1" indica que se requiere un reinicio.
"2" indica un error.
"3" indica un error de sintaxis.
Si especifica -r y se requiere un reinicio, el reinicio se realizará sin ninguna advertencia después de que se hayan procesado todos los dispositivos.
Si especifica -m:\\equipo y el comando no funciona para un equipo remoto, se informará de un error.
DevCon admite caracteres comodín en los Id. de instancia para mayor comodidad interactiva. No dé por supuesto nada acerca del formato de un Id. de instancia de un equipo a otro y de una versión del sistema operativo a otra.
Volver al principio

--------------------------------------------------------------------------------

La información de este artículo se refiere a:
Microsoft Win32 Device Driver Kit for Windows 2000
Microsoft Windows XP Driver Development Kit
Microsoft Windows NT 2003 Driver Development Kit
Volver al principio
Palabras clave:   kbfile kbhowto KB311272

Volver al principio  ¿Necesita más ayuda?Contactar con un profesional de soporte técnico por correo electrónico, online o por teléfono
Seleccione idioma
AlemánÁrabeChecoChinoEslovenoFrancésGriegoHebreoHolandésHúngaroInglés (US)ItalianoJaponésPolacoPortugués (Brasil)Portugués (Portugal)RomanianRusoTaiwanésTurco   
Herramientas
Imprimir la página
Enviar esta página
 
 

 ¿Necesita más ayuda?
Contactar con un profesional de soporte técnico por correo electrónico, online o por teléfono
Ayuda y soporte Contrato de Servicios
Contáctenos | Condiciones de uso | Marcas registradas | Declaración de privacidad
   
©2009 Microsoft 
esa es la documentacion del programa
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines