使うことができます date /t
およびtime /t
を使用して日付と時刻を取得しますが、隣同士には表示しません。私はそれをそれをさせて、このように表示させたかった:
Current Date & Time
-------------------
11/27/2013 10:43:05 AM
以下を試してください(PowerShell):
Get-Date -Format G
27.11.2013 17:10:23
形式はシステムの地域設定で定義されているため、私にとってはこれが得られますが、地域の日付/時刻形式が必要な場合は、希望どおりに表示されるはずです。
(Get-Date).ToString()
おそらく動作するでしょう。
更新:
"Date and time is: $((Get-Date).ToString())"
PowerShellでは、これは簡単です。
(Get-Date).ToString('MM/dd/yyyy hh:mm:ss tt')
cmd
では、やや複雑です。
rem Get the date and time in a locale-agnostic way
for /f %%x in ('wmic path win32_localtime get /format:list ^| findstr "="') do set %%x
rem Leading zeroes for everything that could be only one digit
set Month=0%Month%
set Day=0%Day%
rem Hours need special attention if one wants 12-hour time (who wants that?)
if %Hour% GEQ 12 (set AMPM=PM) else (set AMPM=AM)
set /a Hour=Hour %% 12
if %Hour%==0 (set Hour=12)
set Hour=0%Hour%
set Minute=0%Minute%
set Second=0%Second%
set Month=%Month:~-2%
set Day=%Day:~-2%
set Hour=%Hour:~-2%
set Minute=%Minute:~-2%
set Second=%Second:~-2%
rem Now you can just create your output string
echo %Month%/%Day%/%Year% %Hour%:%Minute%:%Second% %AMPM%
その奇妙な日付と時刻の形式をサポートするために多くのコードが無駄になっていることに注意してください。必要に応じて先行ゼロ。このコードは、ユーザーの地域と言語の設定に関係なく機能することにも注意してください。たとえば、ユーザーの日付形式には依存しません(私にとっては、とにかくISO 8601です)。
私はcmd.exeのウィザードではありませんが、これは機能します。もっと簡単な方法があるかもしれません!
@echo off
setlocal enableextensions
for /f "tokens=*" %%a in ('date /t') do (
set d=%%a
)
for /f "tokens=*" %%a in ('time /t') do (
set t=%%a
)
REM Add those puppies together
set "dt=%d% %t%"
echo %dt%
27/11/2013 16:04
CMDの場合、なぜ単純ではないのか:
C:\temp\test>ECHO %DATE% %TIME%
Mon 06/24/2019 18:00:17.63
冒頭で1日を削除したい場合は、部分文字列を使用してJoeyが行ったことの要約版を以下に示します。
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set timestamp=%dt:~0,4%/%dt:~4,2%/%dt:~6,2% %dt:~8,2%:%dt:~10,2%:%dt:~12,2%
ECHO %timestamp%
2019/06/24 17:56:43
2019/06/24 17:56:43