Batch file 打开文件后关闭命令提示窗口

Batch file 打开文件后关闭命令提示窗口,batch-file,command-prompt,Batch File,Command Prompt,我有一个Access应用程序,我在一个工作站上运行,该工作站用于监控现场生产。应用程序每隔一分钟左右刷新一次数据,但不管出于什么原因,它都会停止每天更新一到两次数据,然后停止运行。我可以捕获错误,这意味着我可以在看到错误时关闭应用程序。我不知道为什么它停止更新/连接,但这不是我发表文章的原因 我想创建一个可以定期运行的批处理文件,以检查Access是否打开。如果是,则什么也不做;如果不是,则打开此数据库文件。这是当前的批处理文件: @echo off QPROCESS "MSACCESS.exe

我有一个Access应用程序,我在一个工作站上运行,该工作站用于监控现场生产。应用程序每隔一分钟左右刷新一次数据,但不管出于什么原因,它都会停止每天更新一到两次数据,然后停止运行。我可以捕获错误,这意味着我可以在看到错误时关闭应用程序。我不知道为什么它停止更新/连接,但这不是我发表文章的原因

我想创建一个可以定期运行的批处理文件,以检查Access是否打开。如果是,则什么也不做;如果不是,则打开此数据库文件。这是当前的批处理文件:

@echo off
QPROCESS "MSACCESS.exe">NUL 2>NUL
IF %ERRORLEVEL% EQU 0 GOTO :FIN
"C:\users\public\myfile.accdb"
exit
:FIN
exit
这在很大程度上是有效的。如果Access正在运行,批处理文件将闪烁且不执行任何操作。如果Access未运行,文件将打开。我的问题是,如果Access未运行且文件打开,则命令提示窗口将挂起打开,并一直保持在那里,直到Access文件关闭为止。我需要批处理文件在打开文件后完成运行,然后关闭


我错过了什么?提前感谢。

Compo对我的问题的回答对我来说很有效。我更改了行以启动文件,使其包含MSACCESS.exe的start命令,然后它工作了,并在运行后关闭了窗口

@echo off
QPROCESS "MSACCESS.exe">NUL 2>NUL
IF %ERRORLEVEL% EQU 0 GOTO :FIN
start MSACCESS.exe "C:\users\public\myFile.accdb"
exit
:FIN
exit

谢谢大家!

可能需要一个
Start
命令。此外,可能值得考虑使用
.accdb
文件作为参数启动
MSACCESS.exe
,而不是依赖这些扩展名的默认处理程序。您也可以将其简化为一行,
@QPROCESS“MSACCESS.exe”>NUL 2>&1&&START-MSACCESS“%PUBLIC%\MYFILE.accdb”
。从中,您不需要前导的
@