周六和周日测试条件的批处理文件
Batch file if condition for testing Saturday and Sunday
我有这个代码:
@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
echo %dow%
if NOT %dow% == "Saturday" if NOT %dow% == "Sunday"
(
start "" "D:\Program Files (2012)\Openfire\bin\openfire.exe"
)
基本上我想如果是星期六或星期日则不应启动该程序,但对于所有其他日子它应该启动该程序。今天是星期六,但节目开始了。在 %dow%
中,我正确地得到了星期六,但它仍然执行启动命令。我错过了什么?
我看不出为此使用 for-loop 的目的:
@%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile ^
"If ((Get-Date).DayOfWeek -NotMatch \"Sunday^|Saturday\") { Exit 2 }"
@If ErrorLevel 2 Start "" "%ProgramFiles(x86)%\Openfire\bin\openfire.exe"
或者反其道而行之:
@%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile ^
"If ((Get-Date).DayOfWeek -Match \"Sunday^|Saturday\") { Exit 2 }"
@If ErrorLevel 2 Exit /B
@Start "" "%ProgramFiles(x86)%\Openfire\bin\openfire.exe"
请注意,我假设您提交的代码不必要地更改了 openfire 可执行文件的位置,因此已将 D:\Program Files (2012)
替换为最可能位置的内置变量,位于 C:\Program Files (x86)
。
请注意 Sunday
和 Saturday
是本地化字符串。
我有这个代码:
@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
echo %dow%
if NOT %dow% == "Saturday" if NOT %dow% == "Sunday"
(
start "" "D:\Program Files (2012)\Openfire\bin\openfire.exe"
)
基本上我想如果是星期六或星期日则不应启动该程序,但对于所有其他日子它应该启动该程序。今天是星期六,但节目开始了。在 %dow%
中,我正确地得到了星期六,但它仍然执行启动命令。我错过了什么?
我看不出为此使用 for-loop 的目的:
@%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile ^
"If ((Get-Date).DayOfWeek -NotMatch \"Sunday^|Saturday\") { Exit 2 }"
@If ErrorLevel 2 Start "" "%ProgramFiles(x86)%\Openfire\bin\openfire.exe"
或者反其道而行之:
@%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile ^
"If ((Get-Date).DayOfWeek -Match \"Sunday^|Saturday\") { Exit 2 }"
@If ErrorLevel 2 Exit /B
@Start "" "%ProgramFiles(x86)%\Openfire\bin\openfire.exe"
请注意,我假设您提交的代码不必要地更改了 openfire 可执行文件的位置,因此已将 D:\Program Files (2012)
替换为最可能位置的内置变量,位于 C:\Program Files (x86)
。
请注意 Sunday
和 Saturday
是本地化字符串。