(Solucionado) [VBS] como hacer este bucle?

Iniciado por Eleкtro, 15 Enero 2012, 15:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

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

Código (vb) [Seleccionar]

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")
next


Gracias...








Eleкtro









$Edu$

Explica que es lo que queres hacer con el script porque me parece que estas haciendo cosas de mas.

Flamer

hola hacker aver si te sirve este code ya que yo tengo xp y tu 7
Citar
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

Eleкtro

#4
Cita de: $Edu$ en  4 Febrero 2012, 23:05 PM
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.


Cita de: Flamer en  5 Febrero 2012, 01:40 AM
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








Eleкtro



Vale, he avanzado un poquito, ya no se como seguir ni corregir los errores que tengo:




Código (vb) [Seleccionar]
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








$Edu$

#6
Porque tiene que ser vbs? si lo sabes hacer en batch.

Digo esto porque yo haria simplemente esto:

Código (vb) [Seleccionar]

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

Eleкtro

[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

:(









Flamer

modificastes la linea asi
Citarcarpeta=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

Eleкtro

Cita de: Flamer en  5 Febrero 2012, 20:22 PM
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")