![批处理文件无法删除“正在使用”的文件,但该文件似乎不存在?](https://linux22.com/image/1453607/%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%E2%80%9C%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BD%86%E8%AF%A5%E6%96%87%E4%BB%B6%E4%BC%BC%E4%B9%8E%E4%B8%8D%E5%AD%98%E5%9C%A8%EF%BC%9F.png)
我有这个简单的批处理脚本:
cd "C:\Users\me\AppData\Local\Microsoft\Windows\Temporary Internet Files"
del *.* /f /q
pause
当我运行它时,它告诉我无法删除,\Temporary Internet Files\counters.dat
因为它正在使用中并退出。不过,我可以自己手动删除文件夹中的所有内容,而无需更改正在运行的应用程序。此外,我确实将隐藏文件/文件夹设置为显示,我甚至没有看一个 counters.dat 文件...有人遇到过这种情况吗?
答案1
批处理文件无法删除“正在使用”的文件,但该文件似乎不存在?
counters.dat
对我来说是可见的:
C:\Users\DavidPostill\AppData\Local\Microsoft\Windows\Temporary Internet Files>dir /a
Volume in drive C has no label.
Volume Serial Number is C8D0-DF1E
Directory of C:\Users\DavidPostill\AppData\Local\Microsoft\Windows\Temporary Internet Files
10/06/2015 21:29 <DIR> .
10/06/2015 21:29 <DIR> ..
08/01/2015 23:31 <DIR> AntiPhishing
11/01/2015 08:28 <DIR> Content.IE5
04/01/2015 16:50 128 counters.dat
10/06/2015 21:29 84 desktop.ini
10/02/2015 12:03 <DIR> gegl-0.2
05/02/2015 23:44 <DIR> inkscape
08/01/2015 23:31 <DIR> Low
29/05/2015 12:16 <DIR> SQM
03/01/2015 17:11 <DIR> Virtualized
2 File(s) 212 bytes
9 Dir(s) 83,685,535,744 bytes free
无法删除:
C:\Users\DavidPostill\AppData\Local\Microsoft\Windows\Temporary Internet Files>del counters.dat
C:\Users\DavidPostill\AppData\Local\Microsoft\Windows\Temporary Internet Files\counters.dat
The process cannot access the file because it is being used by another process.
C:\Users\DavidPostill\AppData\Local\Microsoft\Windows\Temporary Internet Files>
我们可以resmon
看到哪些进程正在使用该文件:
您将无法删除counters.dat
任何进程都已打开它。
“为什么一个目录显示 1 个文件和 N 个目录,但是当我在 Windows 资源管理器中浏览到此位置时,我看到 0 个目录和 83 个文件?”
Windows 7 和 8 创建虚拟文件夹来存储 Internet Explorer 尝试保存在受保护位置的文件。
数据实际上是写在一个虚拟化的隐藏文件夹中,该文件夹镜像实际路径并存储在该Temporary Internet Files
文件夹下。
看起来,在显示虚拟文件夹方面,它们的区别在于explorer
:dir
Cygwin ls
至少可以显示Content的内容。IE5则dir
不能。
DavidPostill@Hal /c/Users/DavidPostill/AppData/Local/Microsoft/Windows/Temporary Internet Files
$ ls -al Content.IE5
total 692
drwxrwx---+ 1 DavidPostill None 0 Jan 11 07:28 .
drwxrwx---+ 1 DavidPostill None 0 Jun 10 21:29 ..
drwxrwx---+ 1 Administrators None 0 Jun 11 13:07 4EIQY12G
drwxrwx---+ 1 DavidPostill None 0 Jan 8 22:31 969NZU3P
drwxrwx---+ 1 Administrators None 0 Jan 10 23:18 97RLMZJM
drwxrwx---+ 1 DavidPostill None 0 Jan 8 22:31 ARML5AYH
-rwxrwx---+ 1 Administrators None 0 Jan 4 15:50 container.dat
drwxrwx---+ 1 Administrators None 0 Jun 11 13:23 DO6HI19N
drwxrwx---+ 1 Administrators None 0 Jan 9 23:28 FQECM0IG
drwxrwx---+ 1 DavidPostill None 0 Jan 8 22:31 HY66GH4K
drwxrwx---+ 1 DavidPostill None 0 Jan 8 22:31 IM8A2PXZ
drwxrwx---+ 1 Administrators None 0 Jun 11 13:07 KHCCNELO
drwxrwx---+ 1 Administrators None 0 Jan 9 23:28 MAX18LP0
drwxrwx---+ 1 Administrators None 0 Jun 11 13:08 OJ3O062M
drwxrwx---+ 1 Administrators None 0 Jan 9 23:28 YTDLISE8
Windows 7 | 8 还会创建虚拟文件夹来存储 Internet Explorer 尝试保存在受保护位置的文件。因此,当“附加组件”尝试将数据文件写入 Windows 文件夹或 Program Files 时,Windows 7 或 Vista 会将写入操作重定向到虚拟等效文件夹,而不是导致“附加组件”失败。因此,程序会继续运行,认为它将文件写入了系统位置;几乎没有意识到数据实际上是写入了虚拟隐藏文件夹,该文件夹反映了实际路径并存储在“临时 Internet 文件”文件夹下。