Probléme pour lancer un script via le réseau

stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008 - 3 mars 2008 à 18:27
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008 - 5 mars 2008 à 10:09
Bonjour a tous et a toutes !

Voila, j'ai mon script en .vbs qui fait des traitements sur des fichiers placés sur mon serveur, mon pb est que je ne peux lancer ce script que sur la machine serveur (physiquement), si je le lance via un client du réseau, j'ai l'erreur "Disque non prêt".

Si qqun a une idée.. je peux fournir le script si besoin.

Merci !!

14 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
3 mars 2008 à 20:15
sans le script, ca va etre chaud pour t'aider !!
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
3 mars 2008 à 20:42
lol :)

Option Explicit
Const ForReading = 1
Dim objFso, objDicoID, objDicoFiles
Dim strPath, strFile, strFicTxt, strPathDest
Dim strResult,  i, j, k
ReDim arrFiles(0)

strPath = "E:\Atome\Fabrication\fab-Traitement ouvrages"
strPathDest = "E:\Atome\Fabrication\fab-Commandes\cdes Augustin\Commande 2008\test"
strFile = ".\id.txt"

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objDicoID = CreateObject("Scripting.Dictionary")
Set objDicoFiles = CreateObject("Scripting.Dictionary")
'
'Dictionnaire contenant les ID supérieures à 6000
objDicoID = FnReadFileTxt(objDicoID, strPath & strFile)

'Dictionnaire contenant les fichiers contenant
'"Ouvrage_" dans le nom"
Call CreateFilesList(objFso.GetFolder(strPath))

'Transformation du dictionnaire des fichiers en tableau
Dim elements
elements = objDicoFiles.Items
For i=0 To objDicoFiles.Count-1
    arrFiles(UBound(arrFiles)) = elements(i)
    ReDim Preserve arrFiles(UBound(arrFiles) + 1)
Next

'----------
Dim strList
For j=0 To UBound(objDicoID)-1
    'MsgBox Join(arrFiles,vbCr)
    strResult = Filter(arrFiles, objDicoID(j))
    If UBound(strResult) >= 0 Then
       For k=0 To UBound(strResult)
           objFso.CopyFile strResult(k), strPathDest & "" & Mid(strResult(k), InstrRev(strResult(k), "") + 1)
           'strList = strList &vbcr& strPathDest & "" & Mid(strResult(k), InstrRev(strResult(k), "") + 1)
       Next
    End If
Next

Set objFso = Nothing
Set objDicoID = Nothing
Set objDicoFiles = Nothing
MsgBox "Traitement términé ! Penser à vider le dossier aprés avoir copié les fichiers sur le FTP",,"Fichiers disponibles"

'=========================
Private Function FnReadFileTxt(objDicoID, argFile)
   Dim objFile, strLine, cpt_ID
   'lecture fichier + création dictionnaire
   Set objFile = objFso.OpenTextFile(argFile, ForReading)
   cpt_ID = 0

   Do while not objFile.AtEndOfStream
      strLine = objFile.ReadLine
      If strLine >= 8000 Then
           objDicoID.Add cpt_ID, Trim(strLine) & "."
         cpt_ID = cpt_ID + 1
      End If
   Loop
   objFile.Close
   Set objFile = Nothing
   FnReadFileTxt = objDicoID.Items                 
                   
End function
'=========================
Sub CreateFilesList(argFolder)
    Dim objFile, subFolder
    For Each objFile In argFolder.Files
                If (LCase(Left(objFile.Name,8)) "ouvrage_" Or LCase(Left(objFile.Name,5)) "couv_" Or LCase(Left(objFile.Name,6)) = "flyer_") And _
                UCase(objFso.GetExtensionName(objFile.Path)) = "PDF" Then
            Set objDicoFiles(objFile.Path) = objFile'        If LCase(Left(objFile.Name,8)) "ouvrage_" Or LCase(Left(objFile.Name,5)) "couv_" Then'           If LCase(Right(objFile.Name,4)) ".pdf" Or LCase(Right(objFile.Name,4)) ".PDF" Then
'                   Set objDicoFiles(objFile.Path) = objFile
'           End if       
'        End if
        End if
    Next
    For Each subFolder In argFolder.SubFolders
        Call CreateFilesList(subFolder)
    Next
End Sub
  
  
  
  
  
  
  
  
  
  
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
3 mars 2008 à 21:03
Et ou se porduit ton erreur ? sur quelle ligne ?
Le disque E:\ est un disque local à la machine ? local au serveur ? un mappage vers un partage du serveur ? as-tu bien tous les accès nécessaire dans ce cas ?
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
3 mars 2008 à 21:05
et puis dans cette ligne ...
objDicoID = FnReadFileTxt(objDicoID, strPath & strFile)
... ne peut de toute façon pas te donner un nom de fcheir correct à mon avis ?
car :
strPath = "E:\Atome\Fabrication\fab-Traitement ouvrages"
strFile = ".\id.txt"

Donc ca te donne un chemin du genre
"E:\Atome\Fabrication\fab-Traitement ouvrages.\id.txt"

Le "." après "ouvrages" me choque ! pas toi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
3 mars 2008 à 21:31
ba il fait mon traitement en locale, mais si a la place de E: qui est le disque locale, je met un lecteur réseau mapé par exemple, il me dit "disk non pret" et si je laisse E: et que je le lance via le reséau idem..
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
3 mars 2008 à 23:59
pb de droit d'accès sans doute !
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
4 mars 2008 à 11:48
j'ai tous les droits en admin..

tu vois si je fais ca :
strPath = "Y:\Fabrication\fab-Traitement ouvrages"
strPathDest = "Y:\Fabrication\fab-Commandes\cdes Augustin\Commande 2008\test"
strFile = "\id.txt"

Y: étant un lecteur réseau de ma sation, c'est lentttttttttttttttttttttttttttt lol, la je l'ai lancé depuis 8 min j'ai toujours rien.. (à peine 2 min en locale)
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
4 mars 2008 à 12:15
voilà il a terminer ! 30 min !!
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
4 mars 2008 à 18:03
Et si tu accèdes aux fichiers de Y via l'exploratur Windows, ca répond bien ?
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
4 mars 2008 à 18:10
oui parfaitement .
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
4 mars 2008 à 18:20
donc tous cela m'oblige à dire à la secrétaire qui lance ce fichier de se connecter via vnc sur le serveur pour lancer le fichier en locale...
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
4 mars 2008 à 20:53
Non .. cela devrait fonctionner normalement ! je vais éplucher un peu ton script et voir ce qui pourrait clocher ?
En attendant, peux-tu faire un test avec un autre serveur et un autre poste client ?
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
4 mars 2008 à 21:49
ok merci !

je ferais le test demain matin mais je pense pas que cela change grand chose, je sui sur une bonne machine, je te tiens au courant !
0
stevenhab Messages postés 31 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 5 mars 2008
5 mars 2008 à 10:09
re, :)

j'ai fait le test sur un autre poste c'est la même chose, ca fonctionne mais ca met 30min via le réseau contre 2 min en locale :s
je ne pense pas que ce soit le code quoi soit mal écrit..
0
Rejoignez-nous