Visual Basic - %temp% en vbs como lo sustituyo???

Life is soft - evento anual de software empresarial
 
Vista:

%temp% en vbs como lo sustituyo???

Publicado por Patty (6 intervenciones) el 11/11/2010 01:10:49
Hola Buen dia, necesito que me apoyen con lo Siguiente:

Estoy creando un archivo *.vbs para eliminar temporales, ya lo tengo en *.bat y es mucho mas facil pero lo necesito afuerza en *.vbs, mi pregunta es como eliminar temporales dependiendo del perfil del usuario, ya q la ruta es c:\Users\"nombre del usuario"\appdata\local\temp, en el *.bat utilizaba el %temp% pero en este no funciona

me ayudan? gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:%temp% en vbs como lo sustituyo???

Publicado por Antoni Masana (79 intervenciones) el 11/11/2010 06:27:19
Prueba esto

Private Sub Command1_Click()
MsgBox Environ("Temp")
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:%temp% en vbs como lo sustituyo???

Publicado por patty (6 intervenciones) el 11/11/2010 15:24:27
Hola Gracias por contestar pero no me funciona =( lo que quiero es q borre los temporales del perfil de usuario en windows vista la ruta es c:\users\xxxxxx\appdatta\local\temp, y q de la carpeta esa de temp borre todos los archivos lo que quiero entonces es q sin conocerel nombre xxxxx los borre y no se como se hace
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:%temp% en vbs como lo sustituyo???

Publicado por A.H.H (116 intervenciones) el 11/11/2010 19:51:51
Hola ya te dio Antoni Masana la solucion , para las variables de entorno se usa
Environ("VARIABLEDEENTORNO").

Busca en el simbolo del sistema(ventana dos), cual es la variable que corresponde a la ruta que tu quieres, escribiendo --> set
y despues la pones entre el parentesis y las comiilas de Environ.

Ejemplo de ruta para el Escritorio en XP::PORQUE EN vista cambia lo de Escritorio por Desktop creo..

Private Sub Command1_Click()
MsgBox Environ("Userprofile") & "\Escritorio"
End Sub

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:%temp% en vbs como lo sustituyo???

Publicado por patty (6 intervenciones) el 12/11/2010 01:05:59
Ok muchas gracias exacto y disculpen mi ignorancia ahora se que la variable de entorno "temp" se refiere a c:\users\"nombre de usuario"\appdata\local\temp, sin embargo tengo otra duda (honestamente no se progamar en vbs) asi q investigando tengo mi archivo asi:

Set variable = CreateObject("Scripting.FileSystemObject")

variable.DeleteFile "c:\ProgramData\Symantec\SRTSP\Quarantine\*.*"

variable.DeleteFile "c:\ProgramData\Symantec\Symantec AntiVirus Corporate Edition\7.5\Quarantine\*.*"

variable.DeleteFile "c:\Users\All Users\Symantec\SRTSP\Quarantine\*.*"

variable.DeleteFile "c:\Users\All Users\Symantec\Symantec AntiVirus Corporate Edition\7.5\Quarantine\*.*"

variable.DeleteFile "c:\Windows\temp\*.*"

pero me falta ahora hacer que borre esa parte de "temp" osea de c:\users\"nombre de usuario"\appdata\local\temp\*.*

me pueden indicar como, se los agradecere mucho, porque pense que era igual q las intrucciones anteriores algo asi como:

variable.DeleteFile "Environ("temp"\*.*"

pero no funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:%temp% en vbs como lo sustituyo???

Publicado por A.H.H (116 intervenciones) el 13/11/2010 16:27:39
Hola en visual basic 6 y haciendo referencia a Microsoft Scripting Runtime (system32\Scrrun.Dll)

seria asi:

Private Sub Command1_Click()
Set variable = CreateObject("Scripting.FileSystemObject")
variable.DeleteFile Environ("Temp") & "\*.*"
Set variable = Nothing
End Sub

PERO Puedes tener varios tipos de errores:

1- que dentro de la carpeta temp a veces hay archivos temporales de programas que estan abiertos en el momento y al querer borrarlos Te daria error de Permiso Denegado.

2.- si quieres borrar una extension concreta por ejemplo *.txt y no encuentra dentro de la carpeta temp ningun archivo con esa extension, al querer borrarlos Te daria error de No se ha encontrado el archivo.

En resumen que para borrar archivos con una extension concreta y para que no te de error deberias preguntar primero a la carpeta temp a ver si existen esos tipos de archivo y eso se hace con DIR Y seria asi:

Private Sub Command1_Click()
Dim ruta As String
ruta = Environ("Temp") & "\*.txt"
If Dir(ruta, vbNormal) <> "" Then
Set variable = CreateObject("Scripting.FileSystemObject")
variable.DeleteFile ruta
MsgBox "OK ARCHIVOS DE TEXTO BORRADOS"
Set variable = Nothing
Else
MsgBox "NO HAY ARCHIVOS DE TEXTO PARA BORRAR EN TEMP"
Exit Sub
End If
End Sub

Nota; todos estos ejemplos funcionan en visual basic 6, haciendo referencia a

Microsoft Scripting Runtime (system32\Scrrun.Dll)

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:%temp% en vbs como lo sustituyo???

Publicado por A.H.H (116 intervenciones) el 13/11/2010 23:36:44
HOLA de nuevo, perdona si lo querias en visual basic script seria asi:

borrar archivos de texto dentro de la carpeta temp:

Set WshShell = CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")
Set variable = CreateObject("Scripting.FileSystemObject")
variable.DeleteFile objEnv("Temp") & "\*.txt"


salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:%temp% en vbs como lo sustituyo???

Publicado por patty (6 intervenciones) el 15/11/2010 03:03:32
Hola

Muchas gracias por contestar, lo voy a probar y te comento ok

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:%temp% en vbs como lo sustituyo???

Publicado por patty (6 intervenciones) el 16/11/2010 15:57:37
Hola

Excelente funciona para lo q quiero solo q hay un detalle, los temporales q estan ocupados (abiertos) o que necesitan algun permiso para borrar, no los borra y aparece un msj de error, pudiera evitar eso, para q estos los ignore y continue el script???

pero bueno aun si no me respondes esto te agradezco infinito por tu ayuda

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:%temp% en vbs como lo sustituyo???

Publicado por A.H.H (116 intervenciones) el 16/11/2010 19:25:34
Hola puedes poner un: on error resume next antes de eliminar asi:

El siguiente ejemplo borra archivos y carpetas dentro de temp:

Set WshShell = CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")
Set variable = CreateObject("Scripting.FileSystemObject")
RUTA = objEnv("Temp") & "\*.*"
on error resume next
variable.DeleteFile RUTA
variable.DeleteFolder RUTA
MsgBox "ARCHIVOS y CARPETAS BORRADOS DE TEMP"
WScript.quit

nota:
si algun archivo o carpeta tiene atributos de solo lectura lo algo asi deberias quitar primero los atributos a los archivos.Ese ya es otro tema....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de A.H.H

RE:%temp% en vbs como lo sustituyo???

Publicado por A.H.H (116 intervenciones) el 16/11/2010 22:35:36
El siguiente ejemplo borra carpetas y archivos dentro de temp
aunque tengan el atributo de SOLO LECTURA activado:


Const DeleteReadOnly = True
Set WshShell = CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")
Set variable = CreateObject("Scripting.FileSystemObject")
RUTA = objEnv("Temp") & "\*.*"
on error resume next
variable.DeleteFile RUTA, DeleteReadOnly
variable.DeleteFolder RUTA, DeleteReadOnly
MsgBox "ARCHIVOS y CARPETAS BORRADOS DE TEMP"
WScript.quit

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:%temp% en vbs como lo sustituyo???

Publicado por patty (6 intervenciones) el 17/11/2010 20:18:28
Hola A.H.H.

Funciona perfectamente, no cabe duda que eres inteligente =), una ultima pregunta , es posible q funcione bien en una pc y en otra nop?? porq paso los mismos archivos como temporales y en una los borra y en otra no.

bueno eso ya es un plus, si sabes algo de eso pero en conclusion tema cerrado

Mil gracias

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar