在特殊日子运行的批处理文件

在特殊日子运行的批处理文件

如何创建一个批处理文件,一旦单击该文件,如果是星期日则启动一个 .exe 文件?

如果是在另一天,我不希望它运行 .exe 文件。例如,如果是星期五,我只想让它自行关闭,不执行任何操作。

如果可以在后台运行它而不显示任何命令提示符,那会很好吗?

答案1

您可以Task Scheduler用于此目的。打开Task Scheduler > Create Task 您现在可以在打开的对话框中定义属性、运行任务的条件以及要运行的作业/应用程序。

任务计划程序

答案2

事实是,您想要使用dateWindows 无法在 DOS 批处理中管理的命令(星期几)的高级功能。

date.exe为此,我将使用来自 Unix 世界且可在 Windows 上运行的第三方二进制文件:Unx工具类(这是在 Windows 上运行的常见 GNU Unix 实用程序的集合)。

从以下位置下载这里(UnxUtils.zip)。

然后解压并删除除以下文件之外的所有文件date.exe

然后,编写一个如下批处理文件(假设date.exe位于c:\):

@ECHO OFF
REM Sunday is 0
for /f "delims=" %%a in ('c:\date.exe +%%w') do set DayOfWeek=%%a
if %DayOfWeek% == 0 (
  cmd /c c:\path\to\exe\file.exe
) else (
  echo Do Nothing
)

您可以将其放在 Windows 启动文件夹中,并且可以在所有 Windows 版本上运行,无论您身在何处。


(好多了),在那些日子里,DOS Batch 有点过时了。既然你正在谈论 Windows 8,我会考虑 Powershell(如果需要可以通过批处理文件调用):

$a = Get-Date
if($a.DayOfWeek -eq "Sunday") {
    cmd /c c:\path\to\exe\file.exe
}

这里不需要第三方二进制文件:Powershell 功能强大;)

答案3

根据这里,无法使用内置命令提示符执行批处理文件,并且不显示窗口。

所以,最终我决定页面,并使用该信息制作一个批处理文件,该文件将执行您想要的操作。批处理脚本将执行的操作是检查时间。如果不是正确的日期,命令提示符将闪烁红色并退出。如果是正确的日期,它将闪烁绿色,并在退出时启动您的程序。

以上段落中的所有内容都发生在不到一秒的时间内(取决于您的计算机速度),因此不会非常明显。

@echo off

mode con: cols=16 lines=6

:: The file you want to launch.
set FILE=PATH_TO_FILE

:: The day you want to launch the file on.
set DAY=Sun

for /F "tokens=1 delims= " %%A in ('Date /t') do ( Set TODAY=%%A )
if %TODAY% == %DAY% goto START

:STOP
color 47
goto END

:START
color 27

start "" "%FILE%"
goto END

:END
exit

您需要更改批处理文件中的两件事,以确保它符合您的需要。

  1. 首先,您需要将PATH_TO_FILE第 7 行更改为您想要启动的可执行文件的路径。
  2. 其次,您可能需要Sun在第 10 行进行更改。这可能需要更改为您想要启动可执行文件的日期的前 3 个字母(如果您不想在周日启动它)。

相关内容