中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 07:47
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]寻求参数解释:DEL /F /A /Q \\?\%1和RD /S /Q \\?\%1
可打印版本  3,517 / 9
第1楼 whiteyoo 发表于 2008-11-13 11:03
新手上路 发帖 11 积分 16
[求助]寻求参数解释:DEL /F /A /Q \\?\%1和RD /S /Q \\?\%1
前段时间看到这样一段代码:

前面的能看懂,只是对后面的\\?\%1不明白,似乎%1是默认为使用此批处理时输入的第一个值,请教大家能给个详细的解释,//?是什么?路径?

谢谢!

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"寻求一段代码里参数的解释"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-11-13 at 13:56 ]
第2楼 5872169 发表于 2008-11-13 13:21
高级用户 发帖 474 积分 959
?是任意路径,任何文件夹
第3楼 HAT 发表于 2008-11-13 13:24
版主 发帖 5,017 积分 9,023
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
(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: 如果你想删除的文件夹中包含特殊路径,可能导致整个磁盘分区的数据全部被删除。因此,如果你还不能对这个命令了如指掌,不建议使用这样的命令。
第4楼 purplelichen 发表于 2008-11-17 21:58
新手上路 发帖 8 积分 8
Q: 为什么说这样的命令非常危险?

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


----------------------------
我想强调以上这句话,举一例:

假设h:盘是一个u盘分区,下面有一个 删除顽固文件.bat,代码为:

rem ---------------------------------------------
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
rem ---------------------------------------------

同时h:盘下还有一个取名为 &1.txt 的文本文件,此时
你想用 删除顽固文件.bat 删除 &1.txt,当你把 &1.txt 拖到
删除顽固文件.bat 上后,发现h:盘下所有的文件和文件夹全
被删除了。

这是因为传递的参数中含有特殊字符"&"(这样的特殊字符还有"^"),
对这个问题感兴趣或者有解决方案的高手可以去本版的这个主题:

关于批处理可替换参数的问题
第5楼 radem 发表于 2008-11-19 12:17
高级用户 发帖 383 积分 691
真是非常危险,大家要慎重使用这样的命令
第6楼 ZJHJ 发表于 2008-11-20 22:05
高级用户 发帖 374 积分 609
Originally posted by purplelichen at 2008-11-17 21:58:
Q: 为什么说这样的命令非常危险?

A: 如果你想删除的文件夹中包含特殊路径,可能导致整个磁盘分区的数据全部被删除。因此,如果你还不能对这个 ...


经我实验不是带^字符和带&字符的会带来危险,而是有带^&组合字符的一定有危险.
不过以下代码不会带来危险:



[ Last edited by ZJHJ on 2008-11-20 at 22:10 ]
第7楼 menghen 发表于 2009-01-27 00:00
新手上路 发帖 6 积分 10
恩 谢谢。。。
第8楼 samliu 发表于 2009-02-05 22:14
新手上路 发帖 15 积分 15
学习了 还好没有在U盘中试过
要不可就真的危险了
谢谢 楼主的提醒
第9楼 everest79 发表于 2009-02-06 17:20
金牌会员 发帖 1,127 积分 2,564
这不是因为这个UNC标识而导致的危险,是批处理自身造成的错误
你在批处理中传递H:\&1.txt
那么执行的就是
rd /s /q \\?\H:\
1.txt
del /f /a /q \\?\H:\
1.txt
&在cmd是一个特珠的连接命令

你执行rd /s /q H:\&1.txt的结果也是一样的
第10楼 zhengqian529 发表于 2009-02-06 19:24
初级用户 发帖 93 积分 100 来自 湖南
受教了
为什么一直以来的标准不限制文件名里面可以包含'&'字符,而只是限制 ‘/ \ : * ? " < > |’
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023