[logon scripts] - copiar ficheros al arrancar

10/03/2006 - 09:31 por Visperas | Informe spam
Hola, esta es una pregunta que creo q es tonta.
He empezado a mirar el tema de los scripts de inicio, quiero hacer uno que
me actualice los ficheros de windows\system32\drivers\etc\, como puedo
sustituir la ruta de la carpeta de Windows por la variable %systemroot%,
como pondria la ruta?, el script es este

Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("c:\windows\system32\drivers\etc\") Then
objFSO.CopyFile "\\serv2\Host_services\*.*" ,
"c:\windows\system32\drivers\etc\" , OverwriteExisting
End If

Gracias.
 

Leer las respuestas

#1 Ramón Sola [MVP Windows - Shell/User]
11/03/2006 - 03:39 | Informe spam
Hash: SHA1

Crea una instancia del objeto WScript.Shell y utiliza su método
ExpandEnvironmentStrings para obtener el valor de la variable de entorno
SYSTEMROOT. También se puede usar la colección Environment (clase
WshEnvironment).

Tu script podría quedar así:

Const OverwriteExisting = TRUE

Set WshShell = WScript.CreateObject("WScript.Shell")
SystemRoot = WshShell.ExpandEnvironmentStrings("%SYSTEMROOT%")

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(SystemRoot & "\system32\drivers\etc\") Then

' Añado carácter de continuación (guión bajo) para evitar problemas
' con el corte de línea al copiar y pegar

objFSO.CopyFile "\\serv2\Host_services\*.*" , _
SystemRoot & "\system32\drivers\etc\" , OverwriteExisting
End If


¿Cómo obtener el valor de la variable SYSTEMROOT usando la colección
Environment?

Set WshShell = WScript.CreateObject("WScript.Shell")
Set Env = WshShell.Environment("Process")
SystemRoot = Env("SYSTEMROOT")


Más breve, sacrificando algo de claridad:

Set WshShell = WScript.CreateObject("WScript.Shell")
SystemRoot = WshShell.Environment("Process")("SYSTEMROOT")


Evidentemente, no hay que volver a usar
WScript.CreateObject("WScript.Shell") si ya se ha empleado antes (por
ejemplo como "cabecera" de un script más complejo) para almacenar una
referencia al objeto WScript.Shell en una variable global.

Te sugiero que le eches un vistazo a la documentación de Windows Script
(sólo en inglés) para comprender mejor todo esto:
http://www.microsoft.com/downloads/...x?FamilyID592c48-207d-4be1-8a76-1c4099d7bbb9&DisplayLang=en

Ramón Sola / / MVP Windows - Shell/User
Para obtener la dirección correcta no hacen falta los sellos.
Por favor, usar el correo sólo para cuestiones ajenas a los
grupos de noticias, gracias.

Qué hay, Visperas (), tú escribiste:
Hola, esta es una pregunta que creo q es tonta.
He empezado a mirar el tema de los scripts de inicio, quiero hacer uno
que me actualice los ficheros de windows\system32\drivers\etc\, como
puedo sustituir la ruta de la carpeta de Windows por la variable
%systemroot%, como pondria la ruta?, el script es este

Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("c:\windows\system32\drivers\etc\") Then
objFSO.CopyFile "\\serv2\Host_services\*.*" ,
"c:\windows\system32\drivers\etc\" , OverwriteExisting
End If

Gracias.

Preguntas similares