0

いくつかのバックアップを実行するためのバッチ ファイルを作成しています。しかし、現在の日時でファイルに名前を付けようとすると、奇妙な結果が得られます。

私は使用しています:

backup.backup_%DATE:~10,4%%DATE:~7,2%%DATE:~4,2%_%time:~0,2%%time:~3,2%%time:~6,2%.backupfile

結果: backup.backup_0130-5-_101151.backupfile

これを修正する方法を知っている人はいますか?

4

4 に答える 4

2

andwmicの代わりに使用して、地域設定の影響を受けずに現在の日付と時刻を取得する必要があると思いますdatetime

@echo off
SETLOCAL EnableDelayedExpansion


for /f "skip=1 tokens=1-6 delims= " %%a in ('wmic path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') do (
    IF NOT "%%~f"=="" (
        set /a FormattedDate=10000 * %%f + 100 * %%d + %%a
        set FormattedDate=!FormattedDate:~0,4!!FormattedDate:~-4,2!!FormattedDate:~2,2!
        set /a FormattedTime=%%b * 10000 + %%c * 100 + %%e
        set FormattedTime=!FormattedTime:~0,2!!FormattedTime:~-4,2!!FormattedTime:~-2,2!
    )
)

echo backup.backup_!FormattedDate!_!FormattedTime!
PAUSE

上記のコードは、次の形式でファイルに名前を付けます。

backup.backupYYYYMMDD_HHMMSS

例: backup.backup_20131013_163800

お役に立てれば。

于 2013-10-25T08:39:32.050 に答える