我需要在 Window
*.bat
文件中获取今天的日期。之后我想得到日、月和年。我怎样才能做到这一点?
这将为您提供
DD MM YYYY YY HH Min Sec
变量,并适用于 XP Pro 及更高版本的任何 Windows 计算机。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
你得到这样的格式
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set dow=%%i
set month=%%j
set day=%%k
set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%
注意:以上仅适用于美国语言环境。 它假设
echo %date%
的输出如下所示:Thu 02/13/21
。如果您有不同的 Windows 区域设置,则需要根据您的配置修改脚本。
%date%
会给你日期。
%time%
会给你时间。
date
和 time /t
命令可能会为您提供更多详细信息。
独立于区域设置的一个衬垫可以获得您喜欢的任何日期格式。我用它来生成存档名称。需要反引号 (`) 选项,因为 PowerShell 命令行使用单引号 (')。
:: Get date in 'yyyyMMdd_HHmm' format to use with file name.
FOR /f "usebackq" %%i IN (`PowerShell ^(Get-Date^).ToString^('yyyyMMdd_HHmm'^)`) DO SET DTime=%%i
:: Get yesterday date in 'yyyy-MM-dd' format.
FOR /f "usebackq" %%i IN (`PowerShell ^(Get-Date^).AddDays^(-1^).ToString^('yyyy-MM-dd'^)`) DO SET DTime=%%i
:: Show file name with the date.
echo Archive.%DTime%.zip
set datestr=%date%
set result=%datestr:/=-%
@echo %result%
pause
这将为您提供以 mmddyyyy 格式保存到 %today% 中的日期,假设您的区域设置为美国区域设置。
FOR /f "tokens=2-4 delims=/ " %%a IN ("%date%") DO SET today=%%a%%b%%c
就我而言,我希望创建一个包含今天日期的文件夹,就像这样......
mkdir C:\Users\LKrell\Documents\%today%