Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vbs] recup user name pr copier un fichier sur le bureau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vbs] recup user name pr copier un fichier sur le bureau

n°2262277
bigbenfirs​t
Posté le 10-07-2015 à 17:12:49  profilanswer
 

Bonjour,  
 
Je dois copier un fichier depuis une clef usb sur le bureau de plusieurs PC dont je ne connais pas les noms de session.
 
Apparemment mon code ne fonctionne pas, il n'arrive pas soit à récupérer le nom de session soit ça veut pas utiliser la variable du nom de session lorsqu'elle est placée dans un chemin d'accès lors de l'utilisation d'une autre fonction.
 
 
' copie du raccourcis de la page d’accueil sur le bureau :
 
 
Dim sOriginFolder, sDestinationFolder, sFile, oFSO, strSessionName
 
Set wshShell = WScript.CreateObject("WScript.Shell" )
strSessionName = WshShell.ExpandEnvironmentStrings("%SESSIONNAME%" )
 
 Set oFSO = CreateObject("Scripting.FileSystemObject" )
 sOriginFolder = "C:\Users\Utilisateur\Downloads\Videos\in\home_shortcut"   ' copie le raccourcis du dossier home_shortcut
 sDestinationFolder = "C:\Users\strSessionName\Desktop"                            ' colle le raccourcis dans le dossier bureau
 
 
 For Each sFile In oFSO.GetFolder(sOriginFolder).Files
  If Not oFSO.FileExists(sDestinationFolder & "\" & oFSO.GetFileName(sFile)) Then
   oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True
 
   'popup copie réalisée: WScript.Echo "Copying : " & Chr(34) & oFSO.GetFileName(sFile) & Chr(34) & " to " & sDestinationFolder
  End If
 Next  
 
 
Merci d'avance pour votre aide  :)

mood
Publicité
Posté le 10-07-2015 à 17:12:49  profilanswer
 

n°2262309
bardiel
Debian powa !
Posté le 11-07-2015 à 11:59:50  profilanswer
 

Normal... tu places en cible "C:\Users\strSessionName\Desktop" donc pour un hypothétique utilisateur "strSessionName"...

' copie du raccourcis de la page d’accueil sur le bureau :
 
 
Dim sOriginFolder, sDestinationFolder, sFile, oFSO, strSessionName
 
Set wshShell = WScript.CreateObject("WScript.Shell" )
strSessionName = WshShell.ExpandEnvironmentStrings("%SESSIONNAME%" )
 
 Set oFSO = CreateObject("Scripting.FileSystemObject" )
 sOriginFolder = "C:\Users\" & strSessionName & "\Downloads\Videos\in\home_shortcut"   ' copie le raccourcis du dossier home_shortcut
 sDestinationFolder = "C:\Users\" & strSessionName & "\Desktop"                            ' colle le raccourcis dans le dossier bureau
 
 
 For Each sFile In oFSO.GetFolder(sOriginFolder).Files
  If Not oFSO.FileExists(sDestinationFolder & "\" & oFSO.GetFileName(sFile)) Then
   oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True
 
   'popup copie réalisée: WScript.Echo "Copying : " & Chr(34) & oFSO.GetFileName(sFile) & Chr(34) & " to " & sDestinationFolder
  End If
 Next  


Par contre avec ce code tu ne copies pas un raccourcis, tu copies l'intégralité d'un dossier.

 

Il vaudrait mieux créer un raccourci sur le bureau :


Dim Shell, DesktopPath, strSessionName, oShellLink

 

Set Shell = CreateObject("WScript.Shell" )
strSessionName = WshShell.ExpandEnvironmentStrings("%SESSIONNAME%" )
DesktopPath = Shell.SpecialFolders("Desktop" )
set oShellLink = Shell.CreateShortcut(DesktopPath & "\Vidéos.lnk" )
oShellLink.WindowStyle = 1
oShellLink.TargetPath = "C:\Users\" & strSessionName & "\"
oShellLink.WorkingDirectory = "C:\Users\" & strSessionName & "\"
oShellLink.Save


Tu modifies les variables :
oShellLink.TargetPath -> cible de ton lien
oShellLink.WorkingDirectory -> répertoire de travail

 

Tu peux même personnalisé l'icônes et le descriptif du raccourci en mettant avant oShellLink.Save :
oShellLink.IconLocation = "C:\chemin_vers\icone.exe_ou.dll, 0"
oShellLink.Description = "Description du raccourci"

 

L'option la plus simple après n'est pas de créer l'icône sur le profil de l'utilisateur, mais dans celui de tous les utilisateurs [:spamatounet]


Message édité par bardiel le 11-07-2015 à 12:00:57

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°2262367
bigbenfirs​t
Posté le 13-07-2015 à 14:33:34  profilanswer
 

Merci de votre aide !
 
Je n'arrive pas à faire fonctionner vos 2 codes
 
J'ai bien d'autres codes qui fonctionnent c'est à priori pas le PC.
 
Je veux bien votre 3 ème solution pour copier le raccourci sous chaque session d'utilisateur  
 
Voilà comment je l'ai modifié avec les chemins d'accès des fois que j'ai fais des erreurs
 (j’ais aussi testé des variantes sans succès) :
 

' copie du raccourci sur le bureau :
 
Dim Shell, DesktopPath, strSessionName, oShellLink
Set Shell = CreateObject("WScript.Shell" )
strSessionName = WshShell.ExpandEnvironmentStrings("%SESSIONNAME%" )
DesktopPath = Shell.SpecialFolders("Desktop" )
set oShellLink = Shell.CreateShortcut(DesktopPath & "\Vidéos.lnk" )
oShellLink.WindowStyle = 1
 
oShellLink.TargetPath = "C:\Users\" & strSessionName & "\Desktop"
'destination dossier "Bureau" pour création du raccourci  
 
oShellLink.WorkingDirectory = "C:\Users\Utilisateur\Downloads\Videos\in\home_shortcut\a.txt"      
' source dossier "home_shortcut" du fichier
 
oShellLink.Save


 
Merci d'avance
 

n°2262580
bardiel
Debian powa !
Posté le 16-07-2015 à 15:33:35  profilanswer
 

Ah oui tiens, étonnant ce léger bug avec la variable d'environnement %SESSIONNAME% chez moi aussi, ça renvoie "console" au lieu de mon user :o
Donc version corrigée (testé sous Vista Pro 32bits et Windows 7 Pro 32 et 64bits) :


' definition des variables
Dim Shell, DesktopPath, strSessionName, oShellLink, wshnetwork
' creation des objets pour la manipulation du shell
Set Shell = CreateObject("WScript.Shell" )
' creation et recuperation du user courant
set wshnetwork = WScript.CreateObject("WScript.NetWork" )
strSessionName = wshnetwork.UserName
' definition de l emplacement du dossier du bureau
DesktopPath = Shell.SpecialFolders("Desktop" )
' creation du raccourci
set oShellLink = Shell.CreateShortcut(DesktopPath & "\Vidéos.lnk" )
' style du raccourci en normal : Windows garde en memoire la taille et l emplacement de la fenetre
oShellLink.WindowStyle = 1
' definition du lien
oShellLink.TargetPath = "C:\Users\" & strSessionName & "\"
' definition du dossier de travail
oShellLink.WorkingDirectory = "C:\Users\" & strSessionName & "\"
' creation du raccourci suivant ce qui a ete indique auparavant
oShellLink.Save


Message édité par bardiel le 16-07-2015 à 15:35:02

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°2263473
bigbenfirs​t
Posté le 28-07-2015 à 23:55:14  profilanswer
 

Ça fonctionne super bien ! Merci pour tout, les détails sont parfaits ! :)


---------------
à cœur vaillant rien d’impossible

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vbs] recup user name pr copier un fichier sur le bureau

 

Sujets relatifs
[Shell Linux] Recherche dans un fichier evoluéExtraire du float d'un fichier en .txt
Macro copier tableau avec plusieurs critèresBesoin d'aide: parser un fichier javascript
Récupérer extension d'un fichierSupprimer extension fichier
macro pour copier coller lignestest si un fichier est déja ouvert ou non , HELP !!!
classe fichier SVPliste de fichiers dans un array trié par date : 3eme fichier non listé
Plus de sujets relatifs à : [vbs] recup user name pr copier un fichier sur le bureau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR