Board logo

标题: [其他] [已解决]批处理强制删除顽固文件DEL /F /A /Q \\?\%1是何意? [打印本页]

作者: hkmhd    时间: 2009-2-6 01:20     标题: [已解决]批处理强制删除顽固文件DEL /F /A /Q \\?\%1是何意?

  1. DEL /F /A /Q \\?\%1
  2. RD /S /Q \\?\%1
复制代码
这是网上看到的一个强力删除的批处理……不过后面的\\?\%1看不懂这\是代表转义?
作者: pusofalse    时间: 2009-2-6 01:31     标题: 回复 1楼 的帖子

这篇MSDN上的"Naming a file"看着有点晕,楼主参考下~
http://msdn.microsoft.com/en-us/library/aa365247.aspx
作者: everest79    时间: 2009-2-6 04:27

windows的命名约定中,路径组合的长度为260字节,但也提供了超长路径的统一访问支持,那就是添加可扩展UNC路径\\?\前辍的绝对路径,以便达到最大路径字节32767

\\?\表示了当前电脑的根目录,而各磁盘分区如同在资源管理器中那样,是处于我的电脑之下一阶当中的

\\?\在命令行中无法直接执行文件或切换目录,但大多数内部命令都可以支持这样的路径,例如dir echo start...
作者: hkmhd    时间: 2009-2-6 16:14

原帖由 pusofalse 于 2009-2-6 01:31 发表
这篇MSDN上的"Naming a file"看着有点晕,楼主参考下~
http://msdn.microsoft.com/en-us/library/aa365247.aspx

我英文非常差,你都看头晕了,更何况我(+﹏+)~狂晕
3楼的回答明白了其含义,大致用途还是有点不懂
作者: Batcher    时间: 2009-2-6 16:30     标题: 回复 4楼 的帖子

Q: 为什么rd /s /q \\.\h:\autorun.inf\这条命令为什么能删除包含畸形文件夹在内的所有文件夹?

\\.\理解为\\127.0.0.1\就行了,当然实际上是行不通的。
UNC的一个本地化特例。
?\可以理解成遍历,?是统配符,表示匹配0个或1个任意字符。
.\代表本地节点,在概念上来有点像磁盘根目录,也可以说成是计算机根目录。
所以dir \\.\C:\是可以被命令行解释器识别的,更可以跨盘符的来使用绝对路径引用,例如:
F:\>\\.\C:\windows\system32\cmd.exe
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
F:\>
使用UNC路径不会捡测路径中的保留字设备名称等,因此删除包含畸形文件夹在内的所有文件夹?。

Q: 为什么del /q /f /a \\?\%1可以删除所有文件?

A: UNC路径的一个特例。UNC路径就是符合 \\servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。?是统配符,表示匹配0个或1个任意字符。使用UNC路径不会捡测路径中的保留字设备名称等,因此可以用这种方法来删除特殊文件或目录。

Q: 为什么说这样的命令非常危险?

A: 如果你想删除的文件夹中包含特殊路径,可能导致整个磁盘分区的数据全部被删除。因此,如果你还不能对这个命令了如指掌,不建议使用这样的命令。
作者: everest79    时间: 2009-2-6 16:44

一句话,支持长路径嘿嘿
作者: hkmhd    时间: 2009-2-25 09:49

这命令确实很恐怖- -
所以我也是极少使用
作者: Hello123World    时间: 2011-4-17 13:52

还有这么牛x的命令
作者: 楚牛香    时间: 2013-5-21 15:15

?代表一个字符   \\127.0.0.1\  ,这个肯定说不通127.0.0.1好多字符了
\\服务器名\文件名  那服务器名也不可能是一个字符啊




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2