Windows-Server-2008

在批處理文件中查找星期幾?(Windows 伺服器 2008)

  • February 13, 2021

我有一個從批處理文件執行的程序,我只想在一周中的某一天執行它。

是否有可能獲得星期幾?

我發現的所有範例都以某種方式依賴“date /t”返回“Friday, 12/11/2009”,但是,在我的機器中,“date /t”返回“12/11/2009”。那裡沒有工作日。

我已經檢查了我機器的“區域設置”,長日期格式確實包括工作日。短日期格式沒有,但我真的不想改變它,因為它會影響我做的很多事情。

我參加這個聚會有點晚了,但這會給你星期幾:

wmic 路徑 win32_localtime 獲取星期幾

使用批處理 for 循環來獲取輸出,並且您有一個可測試的星期幾的條件。

這是現代系統上 BAT 腳本的正確答案:

@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
echo %dow%

輸出:

Saturday

用法:

@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
if %dow% == Saturday goto shutdown
if %dow% == Sunday goto shutdown
exit

:shutdown
shutdown /s /f /t 90

我將它用於每天從 BIOS 自動啟動的 PC,它沒有排除週末的選項。

另外:ACPI 是一種更可靠的方法,它允許使用虛擬 BAT 腳本,例如exit在選定特定日期的 Windows 計劃任務中使用,使用喚醒電腦執行此任務選項。

引用自:https://serverfault.com/questions/94824