Если у вас есть известная строка в заголовке окна, , как, например, имя файла , вы сможете фильтровать TaskList
по вашим известным ImageName
, (MSACCESS.EXE
) , опция /V
erbose и перенаправить вывод в find.exe
. Если вы сделаете это в течение For /F
l oop, вы сможете TaskKill
сделать это в части Do
.
@For /F "Tokens=2Delims=," %%G In ('^""%__AppDir__%tasklist.exe" /Fi "ImageName Eq MSACCESS.EXE" /V /Fo CSV^|"%__AppDir__%find.exe" /I "MyFile.accdb" 2^>NUL^"')Do @"%__AppDir__%taskkill.exe" /PID %%~G
Очевидно, вы бы изменили "MyFile.accdb"
на ваше известное имя файла.
[Edit /]
Вот пример, (без TaskKill
) , просто определить, открыт ли файл в Access.
@("%__AppDir__%tasklist.exe" /Fi "ImageName Eq MSACCESS.EXE" /V /Fo CSV 2>NUL|"%__AppDir__%find.exe" /I "MyFile.accdb">NUL&&(Echo File is open.)||Echo File is not open.)&Pause