3

私は現在、Windowsバッチファイルを使用する必要があり、最初に.bakで終わるディレクトリ内のすべてのファイルを取得し、名前に今日の日付を含むrarファイルに追加します

2 つ目は、rar ファイルを別のサーバーに ftp します。

最初のコードは

set path="C:\Program Files\WinRAR\";%path%
set date=%dd-mm-yyyy%
rar a D:\backups\dbs.rar -ri1 -mt2 -ag[dd-mm-yyyy] -m5 D:\backups\*.BAK
del D:\backups\*.BAK

これは、データベースのバックアップが完了したときにSQL Server Manager内から呼​​び出されますが、スケジュールされたタスクから簡単に実行できます

秒コードは

@echo off
echo user Dbusser> ftpuploader.dat
echo ftppassword>> ftpuploader.dat
echo bin>> ftpuploader.dat
echo put %1>> ftpuploader.dat
echo quit>> ftpuploader.dat
ftp -n -s:ftpuploader.dat 127.0.0.1
del ftpuploader.dat

rarファイルの名前を引数としてcmdプロンプトから手動で呼び出しました

ftpuploader.bat d:\pathtorar\dbs[21-10-2013].rar

私が知りたいのは、2つのファイルをマージして、ファイルが作成されて終了したら自動的にアップロードする方法、またはrarファイルの名前の日付ビットを毎日変更するようにスケジュールタスクを自動化する方法を誰でも教えてくれることです

ありがとう

4

2 に答える 2

1

Wmic を使用するには、XP Pro 以降が必要です。

信頼できる方法で変数に日付を設定し、それを使用して RAR ファイル名を作成し、FTP バッチ ファイルを起動します。

if not errorlevel 1 del D:\backups\*.BAKRAR アーカイブが何らかの理由で失敗した場合に *.bak ファイルが削除されないように、この行を変更しました。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"

set "datestamp=%DD%-%MM%-%YYYY%"

set path="C:\Program Files\WinRAR\";%path%
rar a D:\backups\dbs[%datestamp%].rar -ri1 -mt2 -m5 D:\backups\*.BAK
if not errorlevel 1 del D:\backups\*.BAK
ftpuploader.bat D:\backups\dbs[%datestamp%].rar
于 2013-10-21T11:52:37.377 に答える