如何创建一个批处理文件,一旦单击该文件,如果是星期日则启动一个 .exe 文件?
如果是在另一天,我不希望它运行 .exe 文件。例如,如果是星期五,我只想让它自行关闭,不执行任何操作。
如果可以在后台运行它而不显示任何命令提示符,那会很好吗?
答案1
您可以Task Scheduler
用于此目的。打开Task Scheduler > Create Task
您现在可以在打开的对话框中定义属性、运行任务的条件以及要运行的作业/应用程序。
答案2
事实是,您想要使用date
Windows 无法在 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
您需要更改批处理文件中的两件事,以确保它符合您的需要。
- 首先,您需要将
PATH_TO_FILE
第 7 行更改为您想要启动的可执行文件的路径。 - 其次,您可能需要
Sun
在第 10 行进行更改。这可能需要更改为您想要启动可执行文件的日期的前 3 个字母(如果您不想在周日启动它)。