Windows文件被某个进程占用,无法删除
EXE 文件
打开PowerShell,按如下步骤操作:
# 查找进程
tasklist | findstr "something.exe"
# 这行命令会得到如下回显,第二个字段就是进程号
something.exe 27024 Console 1 52,940 K
# 按照进程号将这个进程杀掉
taskkill /PID 27024 /F
# 按照进程名直接杀掉
# /IM 即 Image Name,映像名称
# /F 即 Force,强制立即终止,不给任何反应时间
taskkill /IM "something.exe" /F
其他类型文件
Handle工具
微软官网下载Handle工具:
https://learn.microsoft.com/en-us/sysinternals/downloads/handle
打开PowerShell,按如下步骤操作:
# 扫描这个文件被谁占用了
.\handle64.exe D:\Sync\Temp.txt
# 以下是handle工具的回显
# Nthandle v5.0 - Handle viewer
# Copyright (C) 1997-2022 Mark Russinovich
# Sysinternals - www.sysinternals.com
#
# pythonw.exe pid: 29240 type: File 360: D:\Sync\Temp.txt
# 现在可以看到要删除的文件是被python占用了,文件打开之后没有关闭就会一直占用,直到进程结束
# 按照pid直接kill掉这个进程即可
taskkill /PID 29240 /F
Process Explorer
微软官网下载Process Explorer工具:
https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
这个工具比Handle那个命令行工具牛逼多了,不过大部分功能平时基本用不上。
要搜索文件句柄的话,使用快捷键 Ctrl + Shift + F 打开Process Explorer Search即可搜索。
Windows Power Toys
强推,微软官方的windows工具集,地址:https://github.com/microsoft/PowerToys
自带一个功能:File Locksmith
安装并启用之后,右键单击文件可以看到这个选项:
很久以前用360安全卫士的时候,就有这个功能。但是它广告太多了,没办法。