|
203
|
Programación / Scripting / Re: [AYUDA-BATCH]Cambiar datos de archivos .xml
|
en: 21 Junio 2009, 04:53 am
|
Leo Guitierrez, probé tu code y funciona super bien cuando el archivo a editar se llama "file.txt", obviamente le cambie el nombre a 1111-1222.xml para que procesara la informacion con ese nombre de archivo (porque los archivos estan nombrados de esa forma) y me aparece el siguiente error  lo probé solo cambiando la extension a FILE.XML y tampoko hay problema, ahora como todos los archivos tienen nombres con numero es ahi cuando me da el error de "ENTRY ERROR", pero nose porke :S y me corta el nombre del archivo de 1111-1222.xml a 1111-122.xml y dentro del fichero coloca el siguiente caracter "" (sin las comillas) incluso se le coloco como nombre 1111-1222.txt y tambien pasa lo de que acorta el nombre del archivo y solo genera el caracter anterior. Igual lo que io estoy intentando hacer es algo como lo siguiente: Necesito cambiarle la frase "TARGET_PARTY" a los archivos que io le diga =) y no a todos por igual porque o si no quedaria una embarrada del porte de un buque y el programa que me carga esos archivos me daria mil y un errores =(. por ejemplo: suponiendo que estoy trabajando en la carpeta original y estan todos los archivos, como puedo hacer para YO decirle al programa que archivos procesar y que parte de esos archivos procesar? por ejemplo: tengo el archivo 1200-1299.xml que contiene el siguiente nombre de skill (llamese skill al contenido que esta dentro de <skill> y </skill>) <skill id="1242" levels="3" name="Wind Walk" enchantLevels1="30" enchantLevels2="30"> entonces yo decirle que solo procese la parte del archivo que tiene el nombre "Wind Walk" y que solo a ese contenido le cambie lo que te pedia en el post principal?, estuve tratando de usar el siguiente condigo para buscar el nombre de skill que quiero editar y asi que me diga el nombre del archivo que necesito para pasarcelo al code que me diste tu, pero me muestra todas las coincidencias para por ejemplo "Wind Walk" SET /P buscar="ID Nombre de skill a editar: " findstr /I /M /C:"%buscar%" *.xml >> salida.txt
y me muestra en el archivo salida.txt lo siguiente: 1100-1199.xml 1200-1299.xml 1300-1399.xml 2000-2099.xml 21000-21099.xml 22000-22099.xml 2300-2399.xml 23000-23099.xml 2400-2499.xml 26000-26099.xml 2800-2899.xml 4200-4299.xml 4300-4399.xml 4400-4499.xml 5100-5199.xml 5200-5299.xml 5600-5699.xml 7000-7099.xml 8952-9911.xml
pero es solo el archivo 1200-1299.xml el que contiene el nombre "Wind Walk", y nose como hacer para que me muestre solo las coincidencias para "Wind Walk" y solo ese, y asi yo pasarle ese archivo al FOR que me diste tu y que en ese for solo se edite lo que necesito, pero solo donde esta esa palabra y NO en todo el archivo. muchas gracias por tu ayuda, espero que me puedas ayudar u orientar por lo menos... saludos y que esten bien ^^*!
|
|
|
204
|
Programación / Scripting / Re: [AYUDA-BATCH]Cambiar datos de archivos .xml
|
en: 20 Junio 2009, 21:26 pm
|
muchisimas gracias por tu respuesta, como siempre ayudando a los que sabemos menos , voy a probarlo a ver si me funiona  y posteo como me fue  !, disculpapor la demora en responder, no tengo internet en la casa yu posteo desde cybers ^^ saludos y muchas gracias de nuevo 
|
|
|
205
|
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 <?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 , por ejemplo la linea que necesito editar es la siguiente <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 "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 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  ), es que io creo que debe ser con un FOR pero no son mi fuerte  !! Esperando que me puedan ayudar se despide atte Francisko SAludos y mucha gracias de ante mano
|
|
|
206
|
Programación / Scripting / Re: [BATCH]No me Funiona este FOR xD
|
en: 27 Mayo 2009, 05:24 am
|
disculpa la demora en la respuesta, lo que pasa es que escribo desde un cyber , ya que no tengo internet en mi casa, y SI si me funciono a la perfeccion, pero no me funciona si hay mas de dos ubs conectadas al pc, solo me muestra la primera coincidencia......... pero en si, me muestra justo el dato que necesito muchas gracias de nuevo, luego posteare mas usos del programa, y para que necesitaba ese FOR saludos  !
|
|
|
208
|
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: 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 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  !!..... 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 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
|
|
|
209
|
Programación / Scripting / Re: [VBS] Denegar acceso a una carpeta o archivo o pedir una Password
|
en: 16 Mayo 2009, 03:58 am
|
hola!, estuve probando el code para denegar el acceso a una carpeta o archivo y pedir una pass, y cuando ejecuto el .exe o la carpeta, me abre al ventana de que esta bloqueado y si quiero desbloquearlo  , pero entra en un bucle infinito, y empieza a repetir la ventana donde pregunta lo anterior, escribiendo "&percent" en cada ventana, primero pense que estaba mal el nombre de la carpeta, pero no, la carpeta se llamaba "hola"  ..... eso queria aportar  !, nose porke sera porke no se casi nada de vbs..... saludos el code esta muy bueno, pero si funcionara bien seria mucho mejor (no es que este exjiendo nada), solo digo que puede ser muy util para mucho de nosotros =) saludos
|
|
|
|
|
|
|