WMICを使用したバッチファイルがTaskSchedulerで正しく機能しない(ただし、コマンドラインからは正常に機能する!)

Strelok

フォルダとその内容の毎日のコピーを作成するために、小さなバッチファイルを作成することにしました。フォルダに自動的に名前を付けるために、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.
コンポ

よりも迅速な方法で日付を決定することをお勧めします

次の例では、使用しています

@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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ