回答:
それはできますが、それほどきれいで整然としたことではありません。
echo %date:~-4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
私にとってこれは戻ります:
これはロケール固有のものであり、実際にはちょっとしたハックです。それは単に次のものを連結したものです。
runningの出力形式は次のとおりです。
date +"%Y%m%d%H%M%S"
Linux上で。
を使う %date%
別の回答で指摘されているように、解決策を提供することは、OSロケール、地域、および言語設定に依存します。
を使う wmic
一方、OSロケール、言語、またはユーザーが選択した日付形式(コントロールパネル/地域)とは無関係に機能します。
次のバッチファイルでは wmic
OPの指定されたフォーマットで日付と(現地の)時間を検索するので、を使用するソリューションの不利益を被りません %date%
。
getdate.cmd:
@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in (`wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"`) do (
set _day=00%%g
set _hours=00%%h
set _minutes=00%%i
set _month=00%%j
set _seconds=00%%k
set _year=%%l
)
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
set _date=%_year%%_month%%_day%%_hh%%_mm%%_ss%
echo %_date%
endlocal
上記のバッチファイルは、次の例の修正版です。 取得日
出力 :
F:\test>date /t && time /t
25/02/2016
16:49
F:\test>getdate
20160225164929
F:\test>
比較のためのCygwin :
DavidPostill@Hal /f/test
$ date +"%Y%m%d%H%M%S"
20160225164938