2011-07-30 9 views
2

現在、私は自分のデータベースをバックアップし、特定のローカルディレクトリにバックアップファイルを格納するバッチスクリプトを持っています。ローカルディレクトリから特定のftp場所にファイルを移動するバッチスクリプト

ここでは、作成されたバックアップファイルのみを移動するためのBATCHスクリプトが必要です(例:C:\ Backups \ backup-30-07-2011.bak)。現在の日付でFTPの場所に移動します。 私のバッチスクリプトは: (1)ユーザ名とパスワードを使ってftpサイトに接続してください (2)現在の日付のファイルを指定されたftpの場所に移動してください。 誰でもこのバッチスクリプトを教えてください。

おかげで...ここのftpについて

+0

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

答えて

1

詳細情報:バックアップのコピーを作成しますbatchscriptのhttp://www.nsftools.com/tips/MSFTP.htm 例、:

@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 

あなたは、元のファイルを削除するコマンドを追加することができますしたい場合は(それを置きます

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

おかげで...: '終了/ B')の前に10あなたが言ったように、ファイルは指定されたFTPの場所にコピーされます。 しかし、 FTPで新しいファイル(コピーされたファイル)を調査すると、サイズはゼロバイトです! つまり、ファイルは正しくコピーされませんが、指定された場所にファイルが作成されただけです... バッチスクリプトで何が間違っていたかを教えてください。 – Raj

+0

私のスクリプトを貼り付けた: " fileNameに= sample.compressed " セット "filePathに= C:バックアップ\" セット "ftpFilePath = ftp_address" セット "ftpAddress = ftp_ip_address" セット "ftpPort = 21" セット "ユーザ名= ftp_username" セット" パスワード= ftp_password " echo%ftpAddress%%ftpPort%> ftpcmds echo%username%>> ftpcmds echo%passw ORD%>> ftpcmds バイナリエコーは>> エコーCD%ftpFilePath%>>は エコーLCD "%ファイルパス%" をftpcmds ftpcmds >> は%ファイル名%を送るエコーftpcmds >> エコーさようなら>> f​​tpcmds のftp -sをftpcmds :ftpcmds exit – Raj

+0

最後のコマンド( 'ftp -s:ftpcmds')を 'ftp -s:ftpcmds> ftp.log'に書き換え、 'ftp.log'をここに投稿してください。 –

関連する問題