OVH Cloud OVH Cloud

envoyer des repertoires entiers, avec leurs sous repertoires en FTP

32 réponses
Avatar
---DGI972---
Bonjour,
J'ai fait des recherches sur ftp et n'arrive pas a trouver un VBScript
pour envoyer des repertoires entiers, avec leurs sous repertoires en
FTP.
Je trouve des lignes pour transferer des fichiers mais pas des
répertoires tel que:
wshell.Run "%compec% /C ftp -i -s:" &ftpCom & " > & ftpCommandLog,
5,True

avec le fichier ftpCom égal à:
open 192.168.15.60
test
test
hash
ascii
mput *.*
close
bye

J'a l'impression de chercher encore un mouton à 5 pattes ! 8-o

DGI972

10 réponses

1 2 3 4
Avatar
---DGI972---
Bonjour,
J'ai fait des recherches sur ftp et n'arrive pas a trouver un VBScript pour
envoyer des repertoires entiers, avec leurs sous repertoires en FTP.
Je trouve des lignes pour transferer des fichiers mais pas des répertoires
tel que:
wshell.Run "%compec% /C ftp -i -s:" &ftpCom & " > & ftpCommandLog, 5,True

avec le fichier ftpCom égal à:
open 192.168.15.60
test
test
hash
ascii
mput *.*
close
bye

J'a l'impression de chercher encore un mouton à 5 pattes ! 8-o

DGI972
bonjour,


J'ai trouvé cela mais il n' y pas de recursivité sur les sous
répertoire:


'Create the FTP Command File:
Set fso = CreateObject("Scripting.FileSystemObject")
Set res = fso.CreateTextFile(FTPTempFile, True)
res.WriteLine "open " & FTPServer
res.WriteLine FTPUser
res.WriteLine FTPPass
res.WriteLine "cd " & FTPFolder

'Loop all files
For Each fsoFile In fso.GetFolder(Folder).Files
Set MyFile = fso.GetFile(fsoFile.Path)
dateModified = MyFile.DateLastModified
x = DateDiff ("d", dateModified, now)
'is file older than 30 days ?
If x > 30 then
'put the upload command in the FTP command file
res.WriteLine "put " & Chr(34) & fsoFile.Path & Chr(34) & " " &
fsoFile.name
end if
Next

je continue mes recherches

Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
| Bonjour,

Bonsoir,

| J'ai fait des recherches sur ftp et n'arrive pas a trouver un VBScript
| pour envoyer des repertoires entiers, avec leurs sous repertoires en
| FTP.

Ci-dessous le script VBScript 'makeFTPCmd.vbs' permettant de générer les
commandes ftp nécessaires au transfert (upload) du contenu d'un dossier
et de ses sous-dossiers. L'arborescence est automatiquement reconstruite
sur le serveur ftp. Les informations de connexion au serveur ftp doivent
être renseignées au préalable dans les constantes.

+++ Usage
>cscript //nologo makeFTPCmd.vbs <path> > cmd.ftp
>ftp -i -s:cmd.ftp

+++ Exemple
>cscript //nologo makeFTPCmd.vbs d:saveftp > cmd.ftp
>ftp -i -s:cmd.ftp

--- Coupez ici : makeFTPCmd.vbs ---

Option Explicit

' déclaration des variables
Dim oFs
Dim strFTPHeader, strFTPFooter, strRootFolder, strBaseFolder

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")

' initialisation des variables
strFTPHeader = _
"OPEN 192.168.15.60" & VbCrLf & _
"test" & VbCrLf & _
"test" & VbCrLf & _
"HASH" & VbCrLf & _
"ASCII"

strFTPFooter = _
"CLOSE" & VbCrLf & _
"BYE"

' lecture du dossier racine
' le dossier est transmis comme argument
strRootFolder = WScript.Arguments (0)
strBaseFolder = Left (strRootFolder, InStrRev (strRootFolder, "")-1)

' initialisation du transfert ftp
WScript.Echo strFTPHeader

' création dynamique des commandes ftp
MakeFTPCommands strRootFolder

' fin du transfert FTP
WScript.Echo strFTPFooter

' enumération récursive des dossiers
' et création dynamique des commandes ftp
Sub MakeFTPCommands (strFolder)

' initialisation des variables locales
Dim oFolder
Dim colFolders
Dim strFTPPath

' initialisation des objets
Set colFolders = oFs.GetFolder (strFolder).SubFolders

' création dynamique des commandes ftp
strFTPPath = Replace (strFolder, strBaseFolder, "")
strFTPPath = Chr (34) & Replace (strFTPPath, "", "/") & Chr (34)
WScript.Echo "MKDIR " & strFTPPath
WScript.Echo "CD " & strFTPPath
WScript.Echo "MPUT """ & strFolder & "*.*"""

' parcours récursif des sous-dossiers
For Each oFolder in colFolders
MakeFTPCommands strFolder & "" & oFolder.Name
Next

End Sub

--- Coupez ici : makeFTPCmd.vbs ---

Note : Ce script sera également disponible sur le site ;-)

--
Gilles LAURENT
http://glsft.free.fr
Avatar
---DGI972---
Gilles LAURENT a exprimé avec précision :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonjour,


Bonsoir,

J'ai fait des recherches sur ftp et n'arrive pas a trouver un VBScript
pour envoyer des repertoires entiers, avec leurs sous repertoires en
FTP.


Ci-dessous le script VBScript 'makeFTPCmd.vbs' permettant de générer les
commandes ftp nécessaires au transfert (upload) du contenu d'un dossier
et de ses sous-dossiers. L'arborescence est automatiquement reconstruite
sur le serveur ftp. Les informations de connexion au serveur ftp doivent
être renseignées au préalable dans les constantes.

+++ Usage
>cscript //nologo makeFTPCmd.vbs <path> > cmd.ftp
>ftp -i -s:cmd.ftp

+++ Exemple
>cscript //nologo makeFTPCmd.vbs d:saveftp > cmd.ftp
>ftp -i -s:cmd.ftp

--- Coupez ici : makeFTPCmd.vbs ---

Option Explicit

' déclaration des variables
Dim oFs
Dim strFTPHeader, strFTPFooter, strRootFolder, strBaseFolder

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")

' initialisation des variables
strFTPHeader = _
"OPEN 192.168.15.60" & VbCrLf & _
"test" & VbCrLf & _
"test" & VbCrLf & _
"HASH" & VbCrLf & _
"ASCII"

strFTPFooter = _
"CLOSE" & VbCrLf & _
"BYE"

' lecture du dossier racine
' le dossier est transmis comme argument
strRootFolder = WScript.Arguments (0)
strBaseFolder = Left (strRootFolder, InStrRev (strRootFolder, "")-1)

' initialisation du transfert ftp
WScript.Echo strFTPHeader

' création dynamique des commandes ftp
MakeFTPCommands strRootFolder

' fin du transfert FTP
WScript.Echo strFTPFooter

' enumération récursive des dossiers
' et création dynamique des commandes ftp
Sub MakeFTPCommands (strFolder)

' initialisation des variables locales
Dim oFolder
Dim colFolders
Dim strFTPPath

' initialisation des objets
Set colFolders = oFs.GetFolder (strFolder).SubFolders

' création dynamique des commandes ftp
strFTPPath = Replace (strFolder, strBaseFolder, "")
strFTPPath = Chr (34) & Replace (strFTPPath, "", "/") & Chr (34)
WScript.Echo "MKDIR " & strFTPPath
WScript.Echo "CD " & strFTPPath
WScript.Echo "MPUT """ & strFolder & "*.*"""

' parcours récursif des sous-dossiers
For Each oFolder in colFolders
MakeFTPCommands strFolder & "" & oFolder.Name
Next

End Sub

--- Coupez ici : makeFTPCmd.vbs ---

Note : Ce script sera également disponible sur le site ;-)


C'est beau

Je digére toutes les infos récoltées depuis quelques jours pour mettre
cela l'ordre et je vous tiens au courant.

Merci encore 1 fois de plus , vraiment merci beaucoup (cela fait 2 ans
que copie "à la mano" tous les jours ces répertoires et j'entrevoie
aujourd'hui peut être une solution automatique).

DGI972

PS: génial le sodoku en 16 Ko ;-)


Avatar
Méta-MCI
Bonsoir !


à peu près la même chose (un peu moins sophistiqué), en Batch :

@echo off
pushd .
CD /DC:

echo OPEN serveurftpdistant>%TEMP%cmd.ftp
echo utilisateur>>%TEMP%cmd.ftp
echo motdepasse>>%TEMP%cmd.ftp

call :PCHEMIN %*

echo CLOSE>>%TEMP%cmd.ftp
echo BYE>>%TEMP%cmd.ftp

popd
xcopy %TEMP%cmd.ftp /Y
echo ftp -i -s:cmd.ftp>bftp.bat
goto :EOF

:PCHEMIN
pushd .
echo MKDIR "%*">>%TEMP%cmd.ftp
echo CD "%*">>%TEMP%cmd.ftp
echo MPUT "%CD%*">>%TEMP%cmd.ftp
for /F "usebackq delims=" %%a in (`DIR /B /A:D`) do call :PCHEMIN %%a
popd
echo CD ..>>%TEMP%cmd.ftp
goto :EOF


Usage : toto.bat chemin_sans_disque
Exemple : toto.bat DEVBAT

Cela crée un fichier "bftp.bat", que l'on peut lancer, pour exécuter le
transfert.

Attention, on ne peut envoyer que des (sous)-répertoires du disque C:


@+

MCI
Avatar
---DGI972---
---DGI972--- avait écrit le 31/10/2006 :
Gilles LAURENT a exprimé avec précision :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonjour,


Bonsoir,

J'ai fait des recherches sur ftp et n'arrive pas a trouver un VBScript
pour envoyer des repertoires entiers, avec leurs sous repertoires en
FTP.


Ci-dessous le script VBScript 'makeFTPCmd.vbs' permettant de générer les
commandes ftp nécessaires au transfert (upload) du contenu d'un dossier
et de ses sous-dossiers. L'arborescence est automatiquement reconstruite
sur le serveur ftp. Les informations de connexion au serveur ftp doivent
être renseignées au préalable dans les constantes.

+++ Usage
>cscript //nologo makeFTPCmd.vbs <path> > cmd.ftp
>ftp -i -s:cmd.ftp

+++ Exemple
>cscript //nologo makeFTPCmd.vbs d:saveftp > cmd.ftp
>ftp -i -s:cmd.ftp

--- Coupez ici : makeFTPCmd.vbs ---

Option Explicit

' déclaration des variables
Dim oFs
Dim strFTPHeader, strFTPFooter, strRootFolder, strBaseFolder

' initialisation des objets
Set oFs = CreateObject ("Scripting.FileSystemObject")

' initialisation des variables
strFTPHeader = _
"OPEN 192.168.15.60" & VbCrLf & _
"test" & VbCrLf & _
"test" & VbCrLf & _
"HASH" & VbCrLf & _
"ASCII"

strFTPFooter = _
"CLOSE" & VbCrLf & _
"BYE"

' lecture du dossier racine
' le dossier est transmis comme argument
strRootFolder = WScript.Arguments (0)
strBaseFolder = Left (strRootFolder, InStrRev (strRootFolder, "")-1)

' initialisation du transfert ftp
WScript.Echo strFTPHeader

' création dynamique des commandes ftp
MakeFTPCommands strRootFolder

' fin du transfert FTP
WScript.Echo strFTPFooter

' enumération récursive des dossiers
' et création dynamique des commandes ftp
Sub MakeFTPCommands (strFolder)

' initialisation des variables locales
Dim oFolder
Dim colFolders
Dim strFTPPath

' initialisation des objets
Set colFolders = oFs.GetFolder (strFolder).SubFolders

' création dynamique des commandes ftp
strFTPPath = Replace (strFolder, strBaseFolder, "")
strFTPPath = Chr (34) & Replace (strFTPPath, "", "/") & Chr (34)
WScript.Echo "MKDIR " & strFTPPath
WScript.Echo "CD " & strFTPPath
WScript.Echo "MPUT """ & strFolder & "*.*"""

' parcours récursif des sous-dossiers
For Each oFolder in colFolders
MakeFTPCommands strFolder & "" & oFolder.Name
Next

End Sub

--- Coupez ici : makeFTPCmd.vbs ---

Note : Ce script sera également disponible sur le site ;-)


C'est beau

Je digére toutes les infos récoltées depuis quelques jours pour mettre cela
l'ordre et je vous tiens au courant.

Merci encore 1 fois de plus , vraiment merci beaucoup (cela fait 2 ans que
copie "à la mano" tous les jours ces répertoires et j'entrevoie aujourd'hui
peut être une solution automatique).

DGI972

PS: génial le sodoku en 16 Ko ;-)


Re Bonjour,
J'ai fait des petits tests
Il y a un Pb les répertoires ne sont pas créés sur le site en FTP.
A la place il y a des fichiers de taille 0 octet et les fichiers des
sous répertoires sont copiés à la racine du site.
Pourtant le fichier cmd.ftp comporte bien la commande
MKDIR "/TOTO/TATA/"
mais le répertoire n'est pas crée.
DGI972



Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
| Il y a un Pb les répertoires ne sont pas créés sur le site en FTP.
| A la place il y a des fichiers de taille 0 octet et les fichiers des
| sous répertoires sont copiés à la racine du site.

Ce qui semble normal si les dossiers ne sont pas créés

| Pourtant le fichier cmd.ftp comporte bien la commande
| MKDIR "/TOTO/TATA/"
| mais le répertoire n'est pas crée.

Je viens de refaire des tests sans rencontrer le moindre problème.
Mon serveur FTP tourne sous Linux.
Que répond la commande si vous l'entrez à la main ?

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
| Il y a un Pb les répertoires ne sont pas créés sur le site en FTP.
| A la place il y a des fichiers de taille 0 octet et les fichiers des
| sous répertoires sont copiés à la racine du site.
| Pourtant le fichier cmd.ftp comporte bien la commande
| MKDIR "/TOTO/TATA/"
| mais le répertoire n'est pas crée.

Je viens de monter un serveur FTP sous Windows 2003.
Aucun problème constaté.
Pouvez-vous consulter le fichier log du serveur FTP ?
Avez-vous vérifié les droits d'accès ?

--
Gilles LAURENT
http://glsft.free.fr
Avatar
---DGI972---
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Il y a un Pb les répertoires ne sont pas créés sur le site en FTP.
A la place il y a des fichiers de taille 0 octet et les fichiers des
sous répertoires sont copiés à la racine du site.
Pourtant le fichier cmd.ftp comporte bien la commande
MKDIR "/TOTO/TATA/"
mais le répertoire n'est pas crée.


Je viens de monter un serveur FTP sous Windows 2003.
Aucun problème constaté.
Pouvez-vous consulter le fichier log du serveur FTP ?
Avez-vous vérifié les droits d'accès ?


Bonjour,
J'utilise le même environement (depuis 2 ans) que la version à la main
c'est à dire:
Filezilla 0.9.19 et un client FTP totalcommander 6.54.
Je ne comprends pas je vais effectivement analyser les logs sur le
serveur mais aussi dans le fenêtre DOS du FTP.exe.

merci encore


Avatar
Michel Claveau
Bonjour !

Filezilla 0.9.19




Pour Filezilla, tu pourrais évoluer. On en est à la version 2.2.29 (ou
3 bêta)

C'est là : http://sourceforge.net/project/showfiles.php?group_id!558

--
@-salutations

Michel Claveau



Avatar
Michel Claveau
Je m'excuse, car je viens de réaliser que, lorsque tu parles de
filezilla, tu sous-entendais "filezilla SERVER".

Du coup, j'ai une autre réflexion : ça m'étonnerais que tu utilises
cette version depuis 2 ans, puisqu'elle est sortie le 29.09.2006...

Mais, rien de tout ça ne règle les problèmes.

--
@-salutations

Michel Claveau
1 2 3 4