Probleme de script

Résolu
Messages postés
2
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
10 janvier 2007
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bonjour, j'ai un script qui se lançait bien sous win2000, en changeant de poste avec winxp, ce script met un message d'erreur à la ligne 62, type incompatible: 'Copyfile'

Pourriez vous m'aidez à solutionner ce bug, je vous joins le script, et merci d'avance:

Option Explicit


Const BIF_returnonlyfsdirs = &H0001
Const BIF_dontgobelowdomain = &H0002
Const BIF_statustext = &H0004
Const BIF_returnfsancestors = &H0008
Const BIF_editbox = &H0010
Const BIF_validate = &H0020
Const BIF_browseforcomputer = &H1000
Const BIF_browseforprinter = &H2000
Const BIF_browseincludefiles = &H4000


'*********************


Const BSF_desktop = 0 'Desktop is the root directory. With BIF_returnonlyfsdirs circumvents problem with OK-button
Const BSF_internetexplorer = 1 'Internet Explorer is the root
Const BSF_programs = 2 'Programs folder of the start menu is the root
Const BSF_controlpanel = 3 'Control Panel is the root. Needs BIF_browseincludefiles
Const BSF_printers = 4 'Printers folder is the root. Needs BIF_browseincludefiles
Const BSF_documents = 5 'Documentsfolder is the root
Const BSF_favorites = 6 'Favorites is the root
Const BSF_startup = 7 'Startup-folder of the startmenu is the root. Needs BIF_browseincludefiles
Const BSF_recent = 8 'Recentfolder is the root. Needs BIF_browseincludefiles
Const BSF_sendto = 9 'Sendto-folder is the root. Needs BIF_browseincludefiles
Const BSF_recyclebin = 10 'Recycle Bin is the root. Needs BIF_browseincludefiles
Const BSF_startmenu = 11 'Start Menu is the root
Const BSF_desktopdirectory = 16 'The Desktopdirectory is the root directory
Const BSF_drives = 17 'The drives (My computer) folder is the root
Const BSF_network = 18 'The networkneighbourhood is the root
Const BSF_nethood = 19 'The nethoodfolder is the root
Const BSF_fonts = 20 'The fontsfolder is the root
Const BSF_templates = 21 'The templatesfolder is the root


 


Dim strPath
strPath = BrowseForFolder("Sélectionnez une ETIQUETTE :", BIF_editbox + BIF_validate + BIF_browseincludefiles, BSF_desktop)


If IsNull(strPath) Then
     MsgBox "Selection invalide"
Else
     MsgBox strPath
End If




'*****************


Dim Shell
Dim FileSystem
Dim WSHNetwork
Dim WSHShell
Dim FileSysObj
Dim monimprimante


Set Shell = wscript.createObject("wscript.shell")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
'monimprimante = "[file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001]"


FileSysObj.Copyfile  strPath , "c:", True
Wscript.Echo "Impression envoyé !!!"
wshShell.Run "cmd /C copy c:\*.etiq [file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001] & sleep 5 & del c:\*.etiq /F /Q"


 


'*********************


Function BrowseForFolder(strPrompt, BrowseInfo, root)
     On Error Resume Next
     Dim objShell, objFolder, intColonPos, objWshShell, returnerror


     Set objShell = WScript.CreateObject("Shell.Application")
     Set objWshShell = CreateObject("WScript.Shell")
  
     Set objFolder = objShell.BrowseForFolder(&H0, strPrompt, BrowseInfo, "[file://\\mavslogys01\Logys\interface\descente\etiq\ \\mavslogys01\Logys\interface\descente\etiq\]")
    
     BrowseForFolder = objFolder.ParentFolder.ParseName(objFolder.Title).Path
 
     returnerror = err.number
     If returnerror <> 0 Then
          If returnerror = 424 then
               BrowseForFolder = Null
          else


               intColonPos = InStr(objFolder.Title, ":")


               If intColonPos > 0 Then
                    BrowseForFolder = Mid(objFolder.Title, intColonPos - 1, 2) & ""
               End If
          End If
     End If
End Function

5 réponses

Messages postés
56
Date d'inscription
jeudi 25 décembre 2003
Statut
Membre
Dernière intervention
23 avril 2008
2
Peut être qu'il suffirait d'ajouter un  "*.etiq" après strPath (qui est en effet un chemin).
Ceci permet de copier sans message d'erreur tous les fichiers *.etiq à la racine, ce qui semble être le but du script (vu la suite).
 

Dr.T
Messages postés
2
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
10 janvier 2007
1
en rajoutant "*.etiq" le message d'erreur a changé, toujours à la ligne 62 code erreur: 'fichirer introuvable'

Mon but est de récupérer via ce script un fichier se trouvant dans un répertoire serveur et de l'imprimer en local

cela marche avec un autre script qui me permet d'imprimer la totalité du répertoire, mais avec le second, le bug est avec un fichier choisi dans le répertoire.

Pourquoi sous win2000, ça marchait, et non pas avec winxp?????

Merci pour vos réponses.
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
la ligne concernée est :  FileSysObj.Copyfile  strPath , "c:", True


ta source ne me semble pas correcte (un repertoire, et non un fichier)
ta cible ne me semble pas être correcte... (un repertoire)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Et peut-etre aussi un droit d'accès de l'utilisateur sur le fichier source ou le répertoire cible

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous

Bonjour djfays ,

Je me pose plusieurs questions:

Est-ce normal ?
If IsNull(strPath) Then
     MsgBox "Selection invalide"
     WScript.Quit
Else
     MsgBox strPath
End If

et je n'ai pas compris:
wshShell.Run "cmd /C copy c:\*.etiq [file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001] & sleep 5 & del c:\*.etiq /F /Q"
et d'ailleurs, pourquoi utilises-tu la commande "cmd" ?
Pour le BrowseForFolder, j'ai pas tout saisi, dont les constantes.

J'essaierai demain au boulot avec une imprimante réseau.

jean-marc