我创建了一个日期检查器,但当我运行它时,它显示错误的信息



所以我得到了一个代码,检查工作日,然后用它来做其他事情。但是有一个问题(假设今天是星期一),当我在我的pc上运行代码时,它显示为0(正确),但当我在我的笔记本电脑上运行它时,它显示为20(不正确),有人能帮助吗?这是代码:

@echo off
set day=%date:~0,2%
echo %day%
pause

最好和正确的方法是使用独立于区域day/month顺序的日期,您可以使用"WMIC os GET LocalDateTime /Value"WMIC Path Win32_LocalTime GET DayOfWeek /value作为源,因为它是ISO顺序:


@echo off & setlocal
Title Get the date and time independently of the region using WMIC
@for /f %%i in (
'WMIC OS GET LocalDateTime /value ^& WMIC Path Win32_LocalTime GET DayOfWeek /value'
) do (
@for /f %%j in ("%%i") do set "%%j" & echo "%%j"
)
Set /a "tok=DayOfWeek+1"
@for /f "tokens=%tok%" %%i in (
"Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
) do (
Set "Day=%%i"
Set "D=%LocalDateTime:~6,2%"
Set "M=%LocalDateTime:~4,2%"
Set "yyyy=%LocalDateTime:~0,4%"
Set "hh=%LocalDateTime:~8,2%"
Set "mm=%LocalDateTime:~10,2%"
Set "ss=%LocalDateTime:~12,2%"
)
echo( Created: %Day% the %D%/%M%/%yyyy% at %hh%:%mm%:%ss%
pause

最新更新