我有一个 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/