【问题标题】:Running CMD batch file only on Mondays and Thursdays仅在星期一和星期四运行 CMD 批处理文件
【发布时间】:2014-07-28 15:38:10
【问题描述】:

我有一些当前每天运行的批处理文件,它们基本上在早上更新系统数据后立即打开系统文件(根据一天的不同,可能在不同的时间)。

当前的批处理文件(从 CMD 创建)都运行一个简单的 start:... 命令来打开文件。

我正在寻找一种方法,只在周一和周四运行一些批处理文件,而在其他任何一天都不打开程序。基本上如果批处理文件每天都运行,它不会做任何事情,除非是星期一或星期四,然后它会打开系统文件。

【问题讨论】:

  • 看起来你需要一个“if”语句和一种确定当前星期几的方法......这是一个关于星期几问题的问题(它不像你想象的那么简单喜欢)stackoverflow.com/questions/11364147/…

标签: batch-file cmd


【解决方案1】:

你可以找到一周中的哪一天

wmic path win32_localtime get dayofweek

这将为您提供一个表示星期几的数字(这会根据您的本地设置而变化,但通常星期日为 0)。

您可以使用这个和if 语句来决定代码是否应该运行。

【讨论】:

  • 有帮助,谢谢。要将其放入变量中:for /F "skip=1 tokens=*" %%a in ('wmic path win32_localtime get dayofweek') do if not defined dayofweek set dayofweek=%%a,请参阅 stackoverflow.com/a/45421395/550712
【解决方案2】:

这是许多个月前的一些代码:

@echo off
::
:: uses Windows Scripting Host
:: to set a variable to the current day number
:: for Win9x/ME/NT/W2K/XP
set amp=&
if not "%amp%"=="&" set amp=^^^&
set OF="%temp%.\tmp.vbs"
 >%OF% echo n=weekday(now)
>>%OF% echo WScript.Echo "set day=" %amp% n
cscript //nologo "%temp%.\tmp.vbs" > "%temp%.\tmp.bat"
call "%temp%.\tmp.bat"
del  "%temp%.\tmp.bat"
del  %OF%

if "%day%"=="1" echo Sunday 
if "%day%"=="2" echo Monday 
if "%day%"=="3" echo Tuesday 
if "%day%"=="4" echo Wednesday 
if "%day%"=="5" echo Thursday 
if "%day%"=="6" echo Friday 
if "%day%"=="7" echo Saturday 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2011-04-17
    • 2022-01-11
    • 1970-01-01
    • 2016-01-26
    • 2020-03-20
    • 1970-01-01
    相关资源
    最近更新 更多