2

たとえば、Windows 7 の .bat ファイルで現在の時刻から 1 時間を減算する必要があります。

私はこのようにします。

set day=%date:~0,2%
set month=%date:~-7,2%
set year=%date:~-4,4%
:: ———————————————————————–
set hour=%time:~0,2%

set /A hour= hour - 1

if %hour% lss 0 set hour=23
if %hour% lss 10 set hour=0%hour%

echo %year%-%month%-%day% %hour%:00

しかし、問題は、1 か月前に 1 日前に減算した場合に一貫性が得られることです。たとえば、この日付2016-03-01 00:05は2016-03-01 23:05になります。2016-02-29 23:05を取得する必要があります

1 日を減算するバッチ スクリプトがいくつか見つかりましたが、時間または分を含むものはありません。

4

2 に答える 2

1

完全にバッチではありませんが、非常に多くの例外と特殊なケースがあるため、特に以前に行われた場合は、すべてをバッチで再コーディングする価値はありません。このように、バッチ ファイルから Powershell を呼び出すのが好きです。

for /f "delims=" %%a in ('"powershell [DateTime]::Now.AddHours(-1).ToString('yyyy-MM-dd HH:mm')"') do echo %%a

出力は次のようになります。2016-10-18 02:05

于 2016-10-19T04:08:19.417 に答える
0

バッチ ファイルは、日付/時刻の操作には適していません。同様の問題に多くの時間を費やします。たとえば、UNIX の「date」コマンドのウィンドウ ポートなどの外部ツールを使用し、タイムスタンプに対して操作を実行することをお勧めします。

于 2016-10-19T08:15:51.000 に答える