如何使用批处理命令关闭特定文件

Den*_*nde 1 automation batch-file batch-processing

我正在尝试创建一个打开Access文件的批处理文件.(按进入),然后再次关闭Access文件.我是批处理文件的完整菜鸟,我工作的唯一部分是打开文件部分.

Start ""  "W:\Motorenfabriek\World Class Manufacturing\Verspaning\Area 1\PROVO Applicatie\Database tabellen\TblStoringDienst.accdb"
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,应用程序将打开.在您使用Access文件之前,问题在您首先必须按Enter键的组织内.

我知道之前已经问过这个问题,但我还没有看到任何有效的答案.

我尝试了代码beneith再次关闭应用程序,但这不起作用.应用程序保持打开状态

taskill /f /im "W:\Motorenfabriek\World Class Manufacturing\Verspaning\Area 1\PROVO Applicatie\Database tabellen\TblStoringDienst.accdb"
Run Code Online (Sandbox Code Playgroud)

我只希望这个文件关闭,而不是所有的Access实例,因为还有另一个运行实例.

Ger*_*ard 6

有几种方法可以杀死任务,其中一种更简单的方法是通过窗口标题来杀死它.举个例子,我打开一个文件,打开test.txt文件notepad.标题显示为test.txt - Notepad.

然后,我可以这样做来杀死它.

taskkill /F /FI "WindowTitle eq test.txt - Notepad" /T
Run Code Online (Sandbox Code Playgroud)

Window标题也是如此:

my_devices.csv - Excel
My Document1 - Word
TblStoringDienst.accdb - Access
Hex edit TblStoringDienst.accdb
Run Code Online (Sandbox Code Playgroud)

等等

至于你的发送键击选项,纯批量不能这样做,你必须做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));
Run Code Online (Sandbox Code Playgroud)