我采用这个批处理脚本将已经打开的 Outlook 程序置于最前面,这样就可以正常工作,然后批处理就会关闭。但是当 Outlook 需要重新打开时,批处理不会自动关闭。请帮忙看看应该修改什么地方。
@echo off
setlocal
for /f "tokens=2" %%i in ('tasklist /FI "IMAGENAME eq Outlook.exe" ^|
find /I "Outlook.exe"') do set pid=%%i
if "%pid%" == "" (
"%systemdrive%\Program Files (x86)\Microsoft
Office\Office12\OUTLOOK.EXE"
) else (
cscript //E:JScript //nologo "%~f0" "%~nx0" "%pid%"
)
exit /b %errorlevel%
endlocal
@if (@X)==(@Y) @end JScript comment */
var sh=new ActiveXObject("WScript.Shell");
if (sh.AppActivate(WScript.Arguments.Item(1)) == 0) {
sh.SendKeys("% r");
}
答案1
使用 START 命令启动 Outlook.exe。
if "%pid%" == "" ( start "" /b "full_path\to\Outlook" ) else etc.
这将在与批处理文件不同的进程中启动 Outlook,因此批处理文件本身将继续运行(并继续执行退出语句)。