Savez comment autoriser un script en VBS à écrire sur un dossier sous XP ?
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce script
contient les commandes pour copier des fichier d'un endroit à un autre. Mon
problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : " erreur
: permission refusée ; code : 800A0046"
J'ai beau etre logué en admin, donner toutes les autorisation possible au
dossier cible, mais rien n'y fais, j'ai meme essayé un partage reseau avec
autorisation total à tous le monde.
Si quelqu'un à une idée....
Vous aller me dire; fais un bat au lieu du vbs, mais j'ai un autre problème
avec les bats, les " ç " devienne des Alpha une fois passé en ligne de
commande, si bien que j'ai le message : " fichier introuvable "
Si quelqu'un a une soluce je suis preneur ;-)
En tous cas merci d'avance de faire partager votre savoir.
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?) plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq: http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject: http://msdn.microsoft.com/library/en-us/script56/html/sgProgrammingFileSystemObject.asp http://msdn.microsoft.com/library/en-us/script56/html/jsmthCopyFile.asp
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela pourra nous aider à cerner le problème!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce script contient les commandes pour copier des fichier d'un endroit à un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : " erreur permission refusée ; code : 800A0046"
Hello,
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?)
plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq:
http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject:
http://msdn.microsoft.com/library/en-us/script56/html/sgProgrammingFileSystemObject.asp
http://msdn.microsoft.com/library/en-us/script56/html/jsmthCopyFile.asp
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela
pourra nous aider à cerner le problème!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eIJEYXNdEHA.384@TK2MSFTNGP10.phx.gbl
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce
script contient les commandes pour copier des fichier d'un endroit à
un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce
message d'erreur : " erreur
permission refusée ; code : 800A0046"
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?) plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq: http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject: http://msdn.microsoft.com/library/en-us/script56/html/sgProgrammingFileSystemObject.asp http://msdn.microsoft.com/library/en-us/script56/html/jsmthCopyFile.asp
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela pourra nous aider à cerner le problème!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce script contient les commandes pour copier des fichier d'un endroit à un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : " erreur permission refusée ; code : 800A0046"
ephores
Merci François !
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une erreur dans le chemin d'accès", je dois faire une erreur de syntaxe mais je ne vois pas laquelle.Voici mon code :
******************
For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, vers ' pourtant lorsque je pointe mon curseur sur ligne et vers , j'optiens bien la bonne adresse
Next ******************
J'avais pensé au script ou au bat car pour pouvoir faire l'execution plus tard, c'est à dire la programmé, mais c'est pas le plus important , si j'arrive à le faire avec filecopy ça me convient, mais ne va - t - il pas me poser des problème d'autorisation comme dans mon script?
"François Picalausa" a écrit dans le message de news:
Hello,
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?) plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq: http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject:
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela pourra nous aider à cerner le problème!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce > script contient les commandes pour copier des fichier d'un endroit à > un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce > message d'erreur : " erreur > permission refusée ; code : 800A0046"
Merci François !
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une erreur
dans le chemin d'accès", je dois faire une erreur de syntaxe mais je ne vois
pas laquelle.Voici mon code :
******************
For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i))
vers = Trim(List2.List(i))
FileCopy ligne, vers ' pourtant lorsque je pointe mon curseur sur
ligne et vers , j'optiens bien la bonne adresse
Next
******************
J'avais pensé au script ou au bat car pour pouvoir faire l'execution plus
tard, c'est à dire la programmé, mais c'est pas le plus important , si
j'arrive à le faire avec filecopy ça me convient, mais ne va - t - il pas me
poser des problème d'autorisation comme dans mon script?
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:up1N7ROdEHA.4004@TK2MSFTNGP10.phx.gbl...
Hello,
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?)
plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq:
http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject:
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela
pourra nous aider à cerner le problème!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eIJEYXNdEHA.384@TK2MSFTNGP10.phx.gbl
> Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce
> script contient les commandes pour copier des fichier d'un endroit à
> un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce
> message d'erreur : " erreur
> permission refusée ; code : 800A0046"
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une erreur dans le chemin d'accès", je dois faire une erreur de syntaxe mais je ne vois pas laquelle.Voici mon code :
******************
For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, vers ' pourtant lorsque je pointe mon curseur sur ligne et vers , j'optiens bien la bonne adresse
Next ******************
J'avais pensé au script ou au bat car pour pouvoir faire l'execution plus tard, c'est à dire la programmé, mais c'est pas le plus important , si j'arrive à le faire avec filecopy ça me convient, mais ne va - t - il pas me poser des problème d'autorisation comme dans mon script?
"François Picalausa" a écrit dans le message de news:
Hello,
Pourquoi ne pas effectuer la copie directement à partir du programme (VB?) plutôt que de générer un script intermédiaire?
Pour un programme en VB, voir la faq: http://faq.vb.free.fr/index.php?rubrique
Par scripting, tu peux employer le filesystemobject:
Si ça ne fonctionne pas mieux, post un bout de code, peut-être que cela pourra nous aider à cerner le problème!
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce > script contient les commandes pour copier des fichier d'un endroit à > un autre. Mon problème est qu'à l'execution de ce VBS, j'ai ce > message d'erreur : " erreur > permission refusée ; code : 800A0046"
François Picalausa
Hello,
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que si le dossier de destination existe) Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va pas: Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then MsgBox "Le dossier parent de la destination n'existe pas!" Exit Sub End If
If Not FileExists(src) Then MsgBox "Le fichier source n'existe pas!" Exit Sub End If
If FolderExists(dst) Then MsgBox "Un dossier porte le nom du fichier de destination!" Exit Sub End If
FileCopy src, dst End Sub
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
Private Function FolderExists(strPath As String) As Boolean On Error Resume Next FolderExists = (GetAttr(strPath) And vbDirectory) End Function
Private Function GetParentFolder(strPath As String) As String GetParentFolder = Left$(strPath, InStrRev(strPath, "")) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Merci François !
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une erreur dans le chemin d'accès", je dois faire une erreur de syntaxe mais je ne vois pas laquelle.Voici mon code :
Hello,
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que
si le dossier de destination existe)
Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va
pas:
Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then
MsgBox "Le dossier parent de la destination n'existe pas!"
Exit Sub
End If
If Not FileExists(src) Then
MsgBox "Le fichier source n'existe pas!"
Exit Sub
End If
If FolderExists(dst) Then
MsgBox "Un dossier porte le nom du fichier de destination!"
Exit Sub
End If
FileCopy src, dst
End Sub
Private Function FileExists(strPath As String) As Boolean
On Error Resume Next
FileExists = ((GetAttr(strPath) And vbDirectory) = 0)
End Function
Private Function FolderExists(strPath As String) As Boolean
On Error Resume Next
FolderExists = (GetAttr(strPath) And vbDirectory)
End Function
Private Function GetParentFolder(strPath As String) As String
GetParentFolder = Left$(strPath, InStrRev(strPath, ""))
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eaP04kOdEHA.3148@TK2MSFTNGP10.phx.gbl
Merci François !
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une
erreur dans le chemin d'accès", je dois faire une erreur de syntaxe
mais je ne vois pas laquelle.Voici mon code :
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que si le dossier de destination existe) Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va pas: Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then MsgBox "Le dossier parent de la destination n'existe pas!" Exit Sub End If
If Not FileExists(src) Then MsgBox "Le fichier source n'existe pas!" Exit Sub End If
If FolderExists(dst) Then MsgBox "Un dossier porte le nom du fichier de destination!" Exit Sub End If
FileCopy src, dst End Sub
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
Private Function FolderExists(strPath As String) As Boolean On Error Resume Next FolderExists = (GetAttr(strPath) And vbDirectory) End Function
Private Function GetParentFolder(strPath As String) As String GetParentFolder = Left$(strPath, InStrRev(strPath, "")) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Merci François !
losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une erreur dans le chemin d'accès", je dois faire une erreur de syntaxe mais je ne vois pas laquelle.Voici mon code :
ephores
Merci de m'avoir répondu si vite ! effectivement " vers " pointe un dossier, comment faut il faire ? je dois copier des fichiers vers un dossier.
"François Picalausa" a écrit dans le message de news:%
Hello,
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que si le dossier de destination existe) Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va pas: Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then MsgBox "Le dossier parent de la destination n'existe pas!" Exit Sub End If
If Not FileExists(src) Then MsgBox "Le fichier source n'existe pas!" Exit Sub End If
If FolderExists(dst) Then MsgBox "Un dossier porte le nom du fichier de destination!" Exit Sub End If
FileCopy src, dst End Sub
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
Private Function FolderExists(strPath As String) As Boolean On Error Resume Next FolderExists = (GetAttr(strPath) And vbDirectory) End Function
Private Function GetParentFolder(strPath As String) As String GetParentFolder = Left$(strPath, InStrRev(strPath, "")) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > Merci François ! > > losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une > erreur dans le chemin d'accès", je dois faire une erreur de syntaxe > mais je ne vois pas laquelle.Voici mon code :
Merci de m'avoir répondu si vite !
effectivement " vers " pointe un dossier, comment faut il faire ?
je dois copier des fichiers vers un dossier.
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:%23xRv3uOdEHA.3616@TK2MSFTNGP10.phx.gbl...
Hello,
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que
si le dossier de destination existe)
Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va
pas:
Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then
MsgBox "Le dossier parent de la destination n'existe pas!"
Exit Sub
End If
If Not FileExists(src) Then
MsgBox "Le fichier source n'existe pas!"
Exit Sub
End If
If FolderExists(dst) Then
MsgBox "Un dossier porte le nom du fichier de destination!"
Exit Sub
End If
FileCopy src, dst
End Sub
Private Function FileExists(strPath As String) As Boolean
On Error Resume Next
FileExists = ((GetAttr(strPath) And vbDirectory) = 0)
End Function
Private Function FolderExists(strPath As String) As Boolean
On Error Resume Next
FolderExists = (GetAttr(strPath) And vbDirectory)
End Function
Private Function GetParentFolder(strPath As String) As String
GetParentFolder = Left$(strPath, InStrRev(strPath, ""))
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eaP04kOdEHA.3148@TK2MSFTNGP10.phx.gbl
> Merci François !
>
> losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une
> erreur dans le chemin d'accès", je dois faire une erreur de syntaxe
> mais je ne vois pas laquelle.Voici mon code :
Merci de m'avoir répondu si vite ! effectivement " vers " pointe un dossier, comment faut il faire ? je dois copier des fichiers vers un dossier.
"François Picalausa" a écrit dans le message de news:%
Hello,
Est-ce que le dossier de destination existe? (VB ne copiera le fichier que si le dossier de destination existe) Est-ce que vers représente bien un fichier et non un dossier?
Tu peux effectuer les tests suivants sur tes path pour savoir ce qui ne va pas: Option Explicit
If Not FolderExists(GetParentFolder(dst)) Then MsgBox "Le dossier parent de la destination n'existe pas!" Exit Sub End If
If Not FileExists(src) Then MsgBox "Le fichier source n'existe pas!" Exit Sub End If
If FolderExists(dst) Then MsgBox "Un dossier porte le nom du fichier de destination!" Exit Sub End If
FileCopy src, dst End Sub
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
Private Function FolderExists(strPath As String) As Boolean On Error Resume Next FolderExists = (GetAttr(strPath) And vbDirectory) End Function
Private Function GetParentFolder(strPath As String) As String GetParentFolder = Left$(strPath, InStrRev(strPath, "")) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > Merci François ! > > losque j'utilise Filecopy j'ai un message d'erreur m'indiquant " une > erreur dans le chemin d'accès", je dois faire une erreur de syntaxe > mais je ne vois pas laquelle.Voici mon code :
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Merci de m'avoir répondu si vite ! effectivement " vers " pointe un dossier, comment faut il faire ? je dois copier des fichiers vers un dossier.
'Retrouve la partie nom de fichier à partir d'un path
'(partie suivant le dernier backslash)
Private Function GetFileName(strPath As String)
GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1)
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eij2w1OdEHA.4092@TK2MSFTNGP10.phx.gbl
Merci de m'avoir répondu si vite !
effectivement " vers " pointe un dossier, comment faut il faire ?
je dois copier des fichiers vers un dossier.
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Merci de m'avoir répondu si vite ! effectivement " vers " pointe un dossier, comment faut il faire ? je dois copier des fichiers vers un dossier.
François Picalausa
Hello,
En fonction du type d'entrée (utilisateur, constante, ...), on peut effectuer des tests supplémentaires pour s'assurer que la copie se passe au mieux:
FileCopy src, NormalizePath(dst) & GetFileName(src) End Sub
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
'Si le path n'est pas un fichier 'et ne se termine pas par 'on ajoute Private Function NormalizePath(strPath As String) As String If Right$(strPath, 1) = "" Or FileExists(strPath) Then NormalizePath = strPath Else NormalizePath = strPath & "" End If End Function
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
Hello,
En fonction du type d'entrée (utilisateur, constante, ...), on peut
effectuer des tests supplémentaires pour s'assurer que la copie se passe au
mieux:
FileCopy src, NormalizePath(dst) & GetFileName(src)
End Sub
'Retrouve la partie nom de fichier à partir d'un path
'(partie suivant le dernier backslash)
Private Function GetFileName(strPath As String)
GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1)
End Function
'Si le path n'est pas un fichier
'et ne se termine pas par
'on ajoute
Private Function NormalizePath(strPath As String) As String
If Right$(strPath, 1) = "" Or FileExists(strPath) Then
NormalizePath = strPath
Else
NormalizePath = strPath & ""
End If
End Function
Private Function FileExists(strPath As String) As Boolean
On Error Resume Next
FileExists = ((GetAttr(strPath) And vbDirectory) = 0)
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
FileCopy src, NormalizePath(dst) & GetFileName(src) End Sub
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
'Si le path n'est pas un fichier 'et ne se termine pas par 'on ajoute Private Function NormalizePath(strPath As String) As String If Right$(strPath, 1) = "" Or FileExists(strPath) Then NormalizePath = strPath Else NormalizePath = strPath & "" End If End Function
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
ephores
Merci François , mais ça ne marche pas, si je mets : Const src = ligne il me mets " Constante requise " la source et la destination n'est jamais la meme.
C'est si compliqué en VB de copier un fichier dans un dossier ? je ne croyais pas ce language si casse-tête. En tout cas merci je vais continué à chercher.
"François Picalausa" a écrit dans le message de news:%
Hello,
En fonction du type d'entrée (utilisateur, constante, ...), on peut effectuer des tests supplémentaires pour s'assurer que la copie se passe
FileCopy src, NormalizePath(dst) & GetFileName(src) End Sub
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
'Si le path n'est pas un fichier 'et ne se termine pas par 'on ajoute Private Function NormalizePath(strPath As String) As String If Right$(strPath, 1) = "" Or FileExists(strPath) Then NormalizePath = strPath Else NormalizePath = strPath & "" End If End Function
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
Merci François , mais ça ne marche pas,
si je mets : Const src = ligne
il me mets " Constante requise "
la source et la destination n'est jamais la meme.
C'est si compliqué en VB de copier un fichier dans un dossier ? je ne
croyais pas ce language si casse-tête.
En tout cas merci je vais continué à chercher.
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:%23YRb6APdEHA.3132@TK2MSFTNGP11.phx.gbl...
Hello,
En fonction du type d'entrée (utilisateur, constante, ...), on peut
effectuer des tests supplémentaires pour s'assurer que la copie se passe
FileCopy src, NormalizePath(dst) & GetFileName(src)
End Sub
'Retrouve la partie nom de fichier à partir d'un path
'(partie suivant le dernier backslash)
Private Function GetFileName(strPath As String)
GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1)
End Function
'Si le path n'est pas un fichier
'et ne se termine pas par
'on ajoute
Private Function NormalizePath(strPath As String) As String
If Right$(strPath, 1) = "" Or FileExists(strPath) Then
NormalizePath = strPath
Else
NormalizePath = strPath & ""
End If
End Function
Private Function FileExists(strPath As String) As Boolean
On Error Resume Next
FileExists = ((GetAttr(strPath) And vbDirectory) = 0)
End Function
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
Merci François , mais ça ne marche pas, si je mets : Const src = ligne il me mets " Constante requise " la source et la destination n'est jamais la meme.
C'est si compliqué en VB de copier un fichier dans un dossier ? je ne croyais pas ce language si casse-tête. En tout cas merci je vais continué à chercher.
"François Picalausa" a écrit dans le message de news:%
Hello,
En fonction du type d'entrée (utilisateur, constante, ...), on peut effectuer des tests supplémentaires pour s'assurer que la copie se passe
FileCopy src, NormalizePath(dst) & GetFileName(src) End Sub
'Retrouve la partie nom de fichier à partir d'un path '(partie suivant le dernier backslash) Private Function GetFileName(strPath As String) GetFileName = Mid$(strPath, InStrRev(strPath, "") + 1) End Function
'Si le path n'est pas un fichier 'et ne se termine pas par 'on ajoute Private Function NormalizePath(strPath As String) As String If Right$(strPath, 1) = "" Or FileExists(strPath) Then NormalizePath = strPath Else NormalizePath = strPath & "" End If End Function
Private Function FileExists(strPath As String) As Boolean On Error Resume Next FileExists = ((GetAttr(strPath) And vbDirectory) = 0) End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
François Picalausa
Hello,
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le remplissage de variables n'était pas le point important! Dans ton projet, ça devrait donner: For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne) Next
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
si je mets : Const src = ligne il me mets " Constante requise " la source et la destination n'est jamais la meme.
Hello,
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le
remplissage de variables n'était pas le point important!
Dans ton projet, ça devrait donner:
For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i))
vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne)
Next
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:OLj8MTUdEHA.3016@tk2msftngp13.phx.gbl
si je mets : Const src = ligne
il me mets " Constante requise "
la source et la destination n'est jamais la meme.
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le remplissage de variables n'était pas le point important! Dans ton projet, ça devrait donner: For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne) Next
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
si je mets : Const src = ligne il me mets " Constante requise " la source et la destination n'est jamais la meme.
ephores
voila l'erreur que j'ai à la compilation à la ligne :
'type d'argument " byref" incompatible , vers est en surbrillance.
"François Picalausa" a écrit dans le message de news:
Hello,
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le remplissage de variables n'était pas le point important! Dans ton projet, ça devrait donner: For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne) Next
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > si je mets : Const src = ligne > il me mets " Constante requise " > la source et la destination n'est jamais la meme.
voila l'erreur que j'ai à la compilation à la ligne :
'type d'argument " byref" incompatible , vers est en surbrillance.
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:u8nSFkUdEHA.3864@TK2MSFTNGP10.phx.gbl...
Hello,
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le
remplissage de variables n'était pas le point important!
Dans ton projet, ça devrait donner:
For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i))
vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne)
Next
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:OLj8MTUdEHA.3016@tk2msftngp13.phx.gbl
> si je mets : Const src = ligne
> il me mets " Constante requise "
> la source et la destination n'est jamais la meme.
'type d'argument " byref" incompatible , vers est en surbrillance.
"François Picalausa" a écrit dans le message de news:
Hello,
Les constantes n'étaient là que parce qu'il s'agit d'un exemple et que le remplissage de variables n'était pas le point important! Dans ton projet, ça devrait donner: For i = 0 To List1.ListCount - 1
ligne = Trim(List1.List(i)) vers = Trim(List2.List(i))
FileCopy ligne, NormalizePath(vers) & GetFileName(ligne) Next
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"ephores" <ephores(at)free.fr> a écrit dans le message de news: > si je mets : Const src = ligne > il me mets " Constante requise " > la source et la destination n'est jamais la meme.
ephores
j'ai trouvé une soluce pour le problème du bat, losque le nom du fichier comporte un " ç " le programme renomme le fichier en remplaçant le " ç " par des "c" voici le code pour ceux que ça interesse :
chemin = File1.Path & "" & File1.FileName
If InStr(File1.FileName, "ç") Then newchemin = Replace(chemin, "ç", "c") Name chemin As newchemin Else newchemin = chemin End If
List1.AddItem (newchemin)
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Bonjour,
Savez comment autoriser un script en VBS à écrire sur un dossier sous XP ?
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce
script
contient les commandes pour copier des fichier d'un endroit à un autre.
Mon
problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : "
erreur
: permission refusée ; code : 800A0046" J'ai beau etre logué en admin, donner toutes les autorisation possible au dossier cible, mais rien n'y fais, j'ai meme essayé un partage reseau
avec
autorisation total à tous le monde. Si quelqu'un à une idée....
Vous aller me dire; fais un bat au lieu du vbs, mais j'ai un autre
problème
avec les bats, les " ç " devienne des Alpha une fois passé en ligne de commande, si bien que j'ai le message : " fichier introuvable "
Si quelqu'un a une soluce je suis preneur ;-)
En tous cas merci d'avance de faire partager votre savoir.
j'ai trouvé une soluce pour le problème du bat,
losque le nom du fichier comporte un " ç " le programme renomme le fichier
en remplaçant le " ç " par des "c"
voici le code pour ceux que ça interesse :
chemin = File1.Path & "" & File1.FileName
If InStr(File1.FileName, "ç") Then
newchemin = Replace(chemin, "ç", "c")
Name chemin As newchemin
Else
newchemin = chemin
End If
List1.AddItem (newchemin)
"ephores" <ephores(at)free.fr> a écrit dans le message de
news:eIJEYXNdEHA.384@TK2MSFTNGP10.phx.gbl...
Bonjour,
Savez comment autoriser un script en VBS à écrire sur un dossier sous XP ?
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce
script
contient les commandes pour copier des fichier d'un endroit à un autre.
Mon
problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : "
erreur
: permission refusée ; code : 800A0046"
J'ai beau etre logué en admin, donner toutes les autorisation possible au
dossier cible, mais rien n'y fais, j'ai meme essayé un partage reseau
avec
autorisation total à tous le monde.
Si quelqu'un à une idée....
Vous aller me dire; fais un bat au lieu du vbs, mais j'ai un autre
problème
avec les bats, les " ç " devienne des Alpha une fois passé en ligne de
commande, si bien que j'ai le message : " fichier introuvable "
Si quelqu'un a une soluce je suis preneur ;-)
En tous cas merci d'avance de faire partager votre savoir.
j'ai trouvé une soluce pour le problème du bat, losque le nom du fichier comporte un " ç " le programme renomme le fichier en remplaçant le " ç " par des "c" voici le code pour ceux que ça interesse :
chemin = File1.Path & "" & File1.FileName
If InStr(File1.FileName, "ç") Then newchemin = Replace(chemin, "ç", "c") Name chemin As newchemin Else newchemin = chemin End If
List1.AddItem (newchemin)
"ephores" <ephores(at)free.fr> a écrit dans le message de news:
Bonjour,
Savez comment autoriser un script en VBS à écrire sur un dossier sous XP ?
Je m"explique j'ai fais un prog qui lui meme fais un script vbs , ce
script
contient les commandes pour copier des fichier d'un endroit à un autre.
Mon
problème est qu'à l'execution de ce VBS, j'ai ce message d'erreur : "
erreur
: permission refusée ; code : 800A0046" J'ai beau etre logué en admin, donner toutes les autorisation possible au dossier cible, mais rien n'y fais, j'ai meme essayé un partage reseau
avec
autorisation total à tous le monde. Si quelqu'un à une idée....
Vous aller me dire; fais un bat au lieu du vbs, mais j'ai un autre
problème
avec les bats, les " ç " devienne des Alpha une fois passé en ligne de commande, si bien que j'ai le message : " fichier introuvable "
Si quelqu'un a une soluce je suis preneur ;-)
En tous cas merci d'avance de faire partager votre savoir.