¿Cómo copiar el archivo a la aplicación de usuario forlder usando vbscript?

1

Estoy usando el siguiente vbscript pero parece que no funciona para copiar el archivo. Si uso la ruta absoluta del archivo, funciona.

Cómo configurar estas rutas en Windows 7 para que funcionen.

Const DestinationFile = "%UserProfile%\Desktop\plrplus.dotm"
Const SourceFile = "%UserProfile%\Desktop\PLRPlus\plrplus.dotm"

Set fso = CreateObject("Scripting.FileSystemObject")
    'Check to see if the file already exists in the destination folder
    If fso.FileExists(DestinationFile) Then
        'Check to see if the file is read-only
        If Not fso.GetFile(DestinationFile).Attributes And 1 Then 
            'The file exists and is not read-only.  Safe to replace the file.
            fso.CopyFile SourceFile, "%UserProfile%\Desktop\plrplus.dotm" True
        Else 
            'The file exists and is read-only.
            'Remove the read-only attribute
            fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1
            'Replace the file
            fso.CopyFile SourceFile, "%UserProfile%\Desktop\plrplus.dotm", True
            'Reapply the read-only attribute
            fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1
        End If
    Else
        'The file does not exist in the destination folder.  Safe to copy file to this folder.
        fso.CopyFile SourceFile, "%UserProfile%\Desktop\plrplus.dotm", True
    End If
Set fso = Nothing
Rahul Patel
fuente
Tienes que expandir las variables env tú mismo. Ver Variables de entorno
DavidPostill

Respuestas:

0

Por sugerencia de DavidPostill, estas dos cosas diferentes funcionaron.

El escritorio es una carpeta especial, así que para ello:

Set objShell = CreateObject( "WScript.Shell" )    
objShell.SpecialFolders("Desktop")

Para otras carpetas en los usuarios, podemos expandir las cadenas de entorno

Set objShell = CreateObject( "WScript.Shell" )    
objShell.ExpandEnvironmentStrings("%APPDATA%")
Rahul Patel
fuente
Así se veía su declaración final: fso.CopyFile SourceFile, objShell.SpecialFolders ("Desktop"), True
AxGryndr