如何获取BAT文件中的日期

问题描述 投票:0回答:6

我需要在 Window

*.bat
文件中获取今天的日期。之后我想得到日、月和年。我怎样才能做到这一点?
我无法使用 PowerShell

windows batch-file
6个回答
95
投票

这将为您提供

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

42
投票

你得到这样的格式

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 区域设置,则需要根据您的配置修改脚本。


32
投票

%date%
会给你日期。

%time%
会给你时间。

date
time /t
命令可能会为您提供更多详细信息。


11
投票

独立于区域设置的一个衬垫可以获得您喜欢的任何日期格式。我用它来生成存档名称。需要反引号 (`) 选项,因为 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

7
投票
set datestr=%date%
set result=%datestr:/=-%
@echo %result%
pause

0
投票

这将为您提供以 mmddyyyy 格式保存到 %today% 中的日期,假设您的区域设置为美国区域设置。

FOR /f "tokens=2-4 delims=/ " %%a IN ("%date%") DO SET today=%%a%%b%%c

就我而言,我希望创建一个包含今天日期的文件夹,就像这样......

mkdir C:\Users\LKrell\Documents\%today%

© www.soinside.com 2019 - 2024. All rights reserved.