フォルダとその内容の毎日のコピーを作成するために、小さなバッチファイルを作成することにしました。フォルダに自動的に名前を付けるために、WMICを使用して日付を適切にフォーマットしました。コマンドラインでは完全に機能しますが、TaskSchedulerによる実行は嫌いなようです。フォルダーのコピーは作成しますが、日付は取得せず、ファイルを-~-2-~-2
。という名前のフォルダーに保存します。コードの最初の部分を完全にスキップし、そのPad digits
部分に直接ジャンプして、そこから~-2
ビットを取得しているようです。どんな提案でも大歓迎です!
これが私のバッチファイルです:
@Echo off
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_error
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Month^,Year /Format:table') DO (
IF "%%~L"=="" goto s_done
Set _yyyy=%%L
Set _mm=00%%J
Set _dd=00%%G
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
:: Display the date/time in ISO 8601 format:
Set _date=%_yyyy%-%_mm%-%_dd%
Echo %_date%
:: Xcopy the files!
xcopy /s /i "C:\Users\Alcides\Documents\CQC_APS_TESE_DOUTORAMENTO_LaTeX" "I:\Tese-Backup\"%_date%\
GOTO:EOF
:s_error
Echo GetDate.cmd
Echo Displays date and time independent of OS Locale, Language or date format.
Echo:
Echo Returns 6 environment variables containing isodate,Year,Month,Day,hour and minute.
wmicよりも迅速な方法で日付を決定することをお勧めします。
次の例では、robocopyを使用しています。
@Set "_date="
@For /F "Tokens=1-3Delims=/ " %%A In ('^""%__AppDir__%RoboCopy.exe" /NJH /L "\|" Null^"')Do @If Not Defined _date Set "_date=%%A-%%B-%%C"
@"%__AppDir__%XCopy.exe" "C:\Users\Alcides\Documents\CQC_APS_TESE_DOUTORAMENTO_LaTeX" "I:\Tese-Backup\%_date%\" /S
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加