バッチスクリプト - ファイルを\%date%\%time%\に移動します

  • 溶液
  • 注意

私はデータベースのバックアップを作成し、それらをdateという名前のフォルダとその中のサブフォルダに移動するための簡単なバッチスクリプトを作成しようとしました。 これは私がこれまでに持っているものです:

---

 @echo off

@echo Server1のバックアップ

mysqldump -A -Q -R -c -e - ロックテーブル= FALSE -uXXXX -pXXXX -hX.XX1> c:\ backup \ 01.sql

@echo Server2をバックアップする

mysqldump -A -Q -R -c -e - ロックテーブル= FALSE -uXXXX -pXXXX -hX.XX2> c:\ backup \ 02.sql

@echoバックアップServer3

mysqldump -A -Q -R -c -e - ロックテーブル= FALSE-uXXXX -pXXXX -hX.XX3> c:\ backup \ 03.sql

set folderdate =%date:〜7, 2% - %date:〜4, 2% - %date:〜10, 4%

mkdir c:\ backup \%folderdate%

設定foldertime =%time:〜0, 2% - %time:〜3, 2%

mkdir c:\ backup \%folderdate%\%foldertime%

c:\ backup \ *。sqlを移動します。c:\ backup \%folderdate%\%foldertime%\

---

私はこれを午後8時から12時間ごとに実行する予定です。 ただし、午後8時に実行されるバッチは成功しますが、8 AMファイルは移動されないままです。 実際、AMでは、 'foldertime'フォルダは 'folderdate'フォルダおよびサイトの外側に作成されたが移動されていないファイルの隣に作成されます。

それでも、8μmではすべてが魅力のように機能します。 たぶんこれは24時間の時間を使うことと関係があります、XPが '変更された'列でAM / PMを使う間、フォルダーは24時間の名前です。 私はこれがそのように起こる原因となるようなロジックを見ていませんが、私は誰かが私を正しい方向に向けることができることを願っています。

溶液

バッチファイルに次の行を挿入します。

 DD =%DATEに設定:〜0.2%

MM =%DATEに設定:〜3, 2%

YY =%DATEに設定:〜8, 2%

YYYY =%DATEに設定:〜6, 4%

HH =%TIMEに設定:〜0.2%

MN =%TIMEに設定:〜3, 2%

日付付きのフォルダ名を作成したいフォーマットで、それらを一緒に文字列にまとめることができます。

FOLDER =%YYYY% - %MM% - %DD%に設定します。

echo%FOLDER%があなたに恩恵を与えるでしょう2009-03-10

この逆の日付形式を使用することをお勧めします。

行の末尾のスペースを削除します。SET YYYY =%DATE:〜10, 4%

注意

フォーラムでこのヒントを提供してくれたRobに感謝します。
前の記事 次の記事

トップのヒント