Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales
Autor
|
Tema: (Solucionado) [VBS] como hacer este bucle? (Leído 1,559 veces)
|
|
EleKtro H@cker
|
Hola Necesito una ayudita con este script Me surgen 3 problemas: el primero es que no se como definir el " CurrentDir" osea para que el script trabaje en el directorio actual. el segundo es que tampoco se como definir ParseName("*.TTF") para que se tome en cuenta todos los archivos .ttf del directorio corriente Y el tercer problema es, que una vez resuelto los 2 primeros, no sabría como aplicarlo al For xD set winsh = CreateObject("WScript.Shell") set winenv = winsh.Environment("Process") windir = winenv("WINDIR") Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace("%CURRENTDIR%") Set objFolderItem = objFolder.ParseName("*.TTF") For each N in objFolderItem N.InvokeVerb("Install") nextGracias...
|
|
|
|
« Última modificación: 22 Febrero 2012, 10:36 por EleKtro H@cker »
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
|
EleKtro H@cker
|
Up! Una ayudita porfavor 
|
|
|
|
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Explica que es lo que queres hacer con el script porque me parece que estas haciendo cosas de mas.
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
Flamer
Desconectado
Mensajes: 214
crack, crack y mas crack...
|
hola hacker aver si te sirve este code ya que yo tengo xp y tu 7 set objarchivo=createobject("scripting.filesystemobject") set objshell=createobject("wscript.shell") carpeta=objshell.expandenvironmentstrings("%systemroot%") set f=objarchivo.getfolder(carpeta) set fc=f.files for each f1 in fc if mid(f1.name,len(f1.name)-3,4)=".exe" then msgbox f1.name end if next
saludos hacker espero que te sirva el code que puse busca los exe tu modificalo para x formato no todo telo boy a entregar en charola de plata saludos flamer
|
|
|
|
|
En línea
|
Por Que Temes A La Muerte Si Una Eternidad Estubistes Muerto Ya...
|
|
|
|
EleKtro H@cker
|
Explica que es lo que queres hacer con el script porque me parece que estas haciendo cosas de mas.
Lo que quiero hacer es un script que instale los archivos de fuentes de texto .ttf a la carpeta fonts de windows. El script original es casi identico solo le he modificado 3 palabras, porque el original trabajaba solamente sobre 1 archivo .ttf, osea, el script funcionaba, pero necesito que trabaje con todos los archivos .ttf del directorio donde ejecute el vbs. hola hacker aver si te sirve este code ya que yo tengo xp y tu 7 saludos hacker espero que te sirva
Te lo agradezco pero tu script solo funciona con el primer archivo, es decir, solo muestra un msgbox del primer archivo que encuentra en "C:\Windows\archivo.ttf" He intentado modificarlo pero es bastante dificil para mi: carpeta=objshell.expandenvironmentstrings("C:\Users\Administrador\Desktop\Nueva carpeta") De todas formas eso no me serviría, no estoy definiendo el directorio actual como se haría en batch por ejemplo así: %CD% Pero ahora viendo tu script al menos ya se como definir el tipo de archivo "ttf", gracias. No pretendo que me lo hagan todo, si alguien me diera esta información podría intentar modificarlo yo: - definir el "CurrentDir" osea para que el script trabaje en el directorio actual en vez de %systemroot% en tu script - Y que el "FOR" no se detenga en el primer resultado, Aunque esta información creo que debe estar en el tutorial de novlucker, pero sin la primera información me quedo en las mismas  Gracias a los dos
|
|
|
|
« Última modificación: 5 Febrero 2012, 09:31 por EleKtro H@cker »
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
|
EleKtro H@cker
|
Vale, he avanzado un poquito, ya no se como seguir ni corregir los errores que tengo: Dim sCurPath sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") set winsh = CreateObject("WScript.Shell") set winenv = winsh.Environment("Process") windir = winenv("WINDIR") Set objShell = CreateObject("Shell.Application") carpeta=objshell.expandenvironmentstrings("sCurPath") set f=objarchivo.getfolder(carpeta) set fc=f.files For each f1 in fc if mid(f1.name,len(f1.name)-3,4)=".ttf" then f1.InvokeVerb("Install") end if next
|
|
|
|
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Porque tiene que ser vbs? si lo sabes hacer en batch. Digo esto porque yo haria simplemente esto: Dim shell Set shell = CreateObject("WScript.Shell") shell.run "copy /Y *.ttf C:\*.ttf" , vbhide O algo asi y listo xD a no ser que tenga que ser vbs puro, pero vamos que funcionar funciona, no se porque no lo pensaste, ya me diras xD edit: Creo que no anda, pero ta el mensaje espero que te llegue xD
|
|
|
|
« Última modificación: 5 Febrero 2012, 16:39 por $Edu$ »
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
|
EleKtro H@cker
|
[quote author=$Edu$ link=topic=350544.msg1715816#msg1715816 date=1328456136] Porque tiene que ser vbs? si lo sabes hacer en batch. shell.run "copy /Y *.ttf C:\*.ttf" , vbhide [/quote] Eso lo se hacer, pero no me sirve porque en batch no se pueden instalar fuentes (En windows 7 no) , con un "copy" no es suficiente, la única forma es dandole click derecho al archivo, o un programa o script vbs que haga el trabajo 
|
|
|
|
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
Flamer
Desconectado
Mensajes: 214
crack, crack y mas crack...
|
modificastes la linea asi carpeta=objshell.expandenvironmentstrings ("%systemroot%\fonts") y aber si te entendi los archivos .ttf estan en esa carpeta y tu los quieres instalar si estan en la carpeta fonts el script deve de funsionar y mostrarte el msgbox y sino es el windows con respecto ala instalacion no se como see instalan o que comandos se usan pero si medises que comando los instala te podre ayudar eso creo saludos flamer y sus angeles del infierno y sus traficantes de muerte
|
|
|
|
|
En línea
|
Por Que Temes A La Muerte Si Una Eternidad Estubistes Muerto Ya...
|
|
|
|
EleKtro H@cker
|
con respecto ala instalacion no se como see instalan o que comandos se usan pero si medises que comando los instala te podre ayudar eso creo
El comando del bucle: N.InvokeVerb("Install")
|
|
|
|
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
Flamer
Desconectado
Mensajes: 214
crack, crack y mas crack...
|
El comando del bucle: N.InvokeVerb("Install")
y funciona calalo con uno solo y ya con el script que te puse se ase
|
|
|
|
|
En línea
|
Por Que Temes A La Muerte Si Una Eternidad Estubistes Muerto Ya...
|
|
|
|
EleKtro H@cker
|
y funciona calalo con uno solo y ya con el script que te puse se ase
Sorry por tardar, Nada, No hay manera flamer, No me sale  ¿Nadie sabe hacer esto en python o ruby? También me serviria xD Voy a hacer algún intento con ruby. Salu2 Este es el code original en el que quiero realizar un FOR: Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace("<Folder or Share Location>") Set objFolderItem = objFolder.ParseName("<TTF File Name>") objFolderItem.InvokeVerb("Install") EDITO: Al fin he encontrado este script que hace lo que quiero Fin de la historia  No he logrado hacer el maldito bucle pero Gracias por vuestra ayuda y paciencia Set ofso = CreateObject("Scripting.FileSystemObject") SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName) Const FONTS = &H14& Set objShell = CreateObject("Shell.Application") Set oSource = objShell.Namespace(SourceFolder) Set oWinFonts = objShell.Namespace(FONTS) Set rxTTF = New RegExp rxTTF.IgnoreCase = True rxTTF.Pattern = "\.ttf$" FOR EACH FontFile IN oSource.Items() IF rxTTF.Test(FontFile.Path) THEN oWinFonts.CopyHere FontFile.Path END IF NEXT
|
|
|
|
« Última modificación: 22 Febrero 2012, 10:36 por EleKtro H@cker »
|
En línea
|
Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE: "La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal." PD: Volviendo a la era de los 56 k.
|
|
|
|
|