批处理文件无法删除“正在使用”的文件,但该文件似乎不存在?

批处理文件无法删除“正在使用”的文件,但该文件似乎不存在?

我有这个简单的批处理脚本:

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文件夹下。

看起来,在显示虚拟文件夹方面,它们的区别在于explorerdir

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 文件”文件夹下。

来源临时 Internet 文件文件夹位置

相关内容