2011-07-30 2 views
2

Actuellement, j'ai un script batch qui sauvegarde ma base de données et stocke le fichier de sauvegarde dans un répertoire local particulier, par exemple. disons, C: \ Backups \ backup-30-07-2011.bak (les fichiers de sauvegarde seront créés avec la date actuelle) ..Script batch pour déplacer des fichiers d'un répertoire local vers un emplacement ftp particulier

Maintenant, j'ai besoin d'un script BATCH pour déplacer SEULEMENT les fichiers de sauvegarde qui sont créés à la date actuelle à un emplacement FTP. D'où mon script batch doit: (1) Connectez-vous à un site FTP avec son nom d'utilisateur et mot de passe (2) Déplacez le fichier de la date actuelle à l'emplacement ftp spécifié .. Quelqu'un peut-il m'aider sur ce script batch.

Merci ..

+0

http://www.nsftools.com/tips/MSFTP.htm#delete –

Répondre

1

En savoir plus sur ftp ici: http://www.nsftools.com/tips/MSFTP.htm Exemple de batchscript, ce qui en fait une copie de sauvegarde:

@echo off 
    :: Set filename and path 
    :: %date:.=-% mean replace dots '.' to '-' in the variable's value (31.07.2011) 
    :: More info: set /? 
    set "fileName=backup-%date:.=-%.bak" 
    :: There mustn't be slash in end. "C:\Backups\" is wrong, "C:\Backups" is right 
    set "filePath=C:\Backups" 
    set "ftpFilePath=somepath" 

    :: there must be ftp's IP & port 
    set "ftpIP=127.0.0.1" 
    set "ftpPort=21" 

    :: replace with your own username & password 
    set "username=username" 
    set "password=password" 

    :: Write commands in file 
    :: Open server 
    echo o %ftpIP% %ftpPort%>ftpcmds 
    :: Say your name & password. If you have no password - just do not change these lines 
    echo %username%>>ftpcmds 
    echo %password%>>ftpcmds 
    :: We send binary data, yep? 
    echo binary>>ftpcmds 
    :: Change ftp path 
    echo cd %ftpFilePath%>>ftpcmds 
    :: Change local path 
    echo lcd "%filePath%">>ftpcmds 
    :: Yeah, we can send file 
    echo send %fileName%>>ftpcmds 
    :: Bye = disconnect + quit 
    echo bye>>ftpcmds 

    :: Run ftp-client. More info: ftp --help 
    :: Delete '>nul' if you want see output of ftp 
    ftp -s:ftpcmds>nul 
exit /b 

Si vous voulez, vous pouvez ajouter commande de supprimer le fichier d'origine (mettre avant 'sortie/b'):

del /s/q %filePath%\%fileName%>nul 
+0

Merci pour la réponse ... Comme vous l'avez dit, maintenant le fichier est copié à l'emplacement FTP spécifié. Mais, En recherchant le nouveau fichier (fichier copié) en FTP, la taille est de ZERO BYTES !!! Ce qui signifie, le fichier n'est pas copié correctement, mais seulement le fichier est créé à l'emplacement spécifié ... Pouvez-vous dire ce que j'ai fait de mal avec mon script de lot .. – Raj

+0

J'ai collé mon script ci-dessous: set " filename = sample.compressed " set "filePath = C: \ sauvegardes" set "ftpFilePath = ftp_address" set "ftpAddress = ftp_ip_address" set "ftpport = 21" set "= nom d'utilisateur ftp_username" set" mot de passe = ftp_password " echo o% ftpAdresse%% ftpPort%> ftpcmds echo% nom d'utilisateur% >> ftpcmds echo% passw ord% >> ftpcmds écho binaire >> ftpcmds echo cd% ftpFilePath% >> ftpcmds lcd "% filePath% de" >> ftpcmds echo envoyer% fileName% >> ftpcmds écho bye écho >> ftpcmds ftp -s : ftpcmds exit – Raj

+0

Essayez de réécrire la dernière commande ('ftp -s: ftpcmds') en tant que 'ftp -s: ftpcmds> ftp.log' et envoyez le fichier 'ftp.log' ici –

Questions connexes