windows - "fuser -k <folder>"的 Windows 批处理等价物是什么?

标签 windows batch-file scripting kill-process fuser

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

fuser -k ..\logs\*

是否有与此等效的 Windows 批处理脚本?我知道 TASKKILL,但我不确定它是否能满足我的需要。有谁知道 Windows shell 是否可行?

最佳答案

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

例子:

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

skip=4 跳过 Handle 输出中的版权信息,tokens=3 从每一行输出中挑选出 PID。其余的不言自明。

关于windows - "fuser -k <folder>"的 Windows 批处理等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059798/

相关文章:

bash 脚本,调用函数作为条件测试

javascript - 如何在java脚本的点击按钮上调用shell脚本?

windows - 我可以在 Windows 窗体应用程序中使用 XpsDocument 类吗

c# - 我应该在服务器上使用始终运行的控制台程序来执行任务吗

c++ - Qt5:使用 QProcess::startDetached 调用 .bat 文件在 System32 中找不到程序

batch-file - 无法在Windows 10下运行.bat文件

windows - 如何从 cmd.exe 打开给定目录中的资源管理器窗口?

c++ - C++ 中的 sleep 操作,平台 : windows

.net - 可以全屏运行 VB 应用程序吗?

string - 提取.txt文件中以00开头的数字