启动程序后关闭批处理文件

启动程序后关闭批处理文件

我采用这个批处理脚本将已经打开的 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,因此批处理文件本身将继续运行(并继续执行退出语句)。

相关内容