Windows批处理相当于"fuser -k <folder>"

Mat*_*att 8 windows scripting batch-file

我有一个Unix shell脚本会杀死正在访问文件夹的任何进程:

fuser -k ..\logs\*
Run Code Online (Sandbox Code Playgroud)

是否有与此等效的Windows批处理脚本?我知道TASKKILL,但我不确定它是否能满足我的需求.有谁知道Windows shell是否可以实现这一点?

Jon*_*Jon 6

不使用内置工具(没有任何内容可以枚举句柄),但您可以使用Sysinternals Handle工具获取文件上具有打开句柄的PID列表.然后,您可以FOR /F使用解析输出并使用它TASKKILL来结束进程.

例:

for /f "skip=4 tokens=3" %i in ('handle ..\logs\') do taskkill /pid %i
Run Code Online (Sandbox Code Playgroud)

skip=4跳过Handle输出中的版权信息,并tokens=3从每行输出中选取PID.其余的都是不言自明的.