我正在尝试创建一个打开Access文件的批处理文件。 (按进入),然后再次关闭Access文件。我是批处理文件的完整菜鸟,我工作的唯一部分是打开文件部分。
Start "" "W:\Motorenfabriek\World Class Manufacturing\Verspaning\Area 1\PROVO Applicatie\Database tabellen\TblStoringDienst.accdb"
当我运行此代码时,应用程序将打开。在您使用Access文件之前,问题在您首先必须按Enter键的组织内。
我之前已经问过这个问题,但我还没有看到任何有效的答案。
我尝试了代码beneith再次关闭应用程序,但这不起作用。应用程序保持打开状态:
taskill /f /im "W:\Motorenfabriek\World Class Manufacturing\Verspaning\Area 1\PROVO Applicatie\Database tabellen\TblStoringDienst.accdb"
我只希望关闭此文件,而不是所有Access实例,因为还有另一个实例正在运行。
答案 0 :(得分:5)
有几种方法可以杀死任务,其中一种更简单的方法是通过窗口标题来杀死它。举个例子,我打开了一个名为test.txt
的文件,文件在notepad
中打开。标题显示为test.txt - Notepad
。
然后我可以这样做来杀死它。
taskkill /F /FI "WindowTitle eq test.txt - Notepad" /T
同样适用于Window Titles,例如:
my_devices.csv - Excel
My Document1 - Word
TblStoringDienst.accdb - Access
Hex edit TblStoringDienst.accdb
等
至于你的发送键击选项,纯批量不能这样做,你必须做wscript和批量组合。当命令启动超时2秒后,这将发送到屏幕。由于我没有您的环境,因此未经测试,因此可能需要进行调整。
@if (@CodeSection == @Batch) @then
@echo off
set SendKeys=CScript //nologo //E:JScript "%~F0"
Start "" "W:\Motorenfabriek\World Class Manufacturing\Verspaning\Area 1\PROVO Applicatie\Database tabellen\TblStoringDienst.accdb"
timeout /t 2 /nobreak >nul
%SendKeys% {ENTER}
@end
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));