Board logo

标题: [文件操作] 【已解决】顽固文件文件夹删除批处理无法删除文件 [打印本页]

作者: 愚无尽    时间: 2009-3-1 18:32     标题: 【已解决】顽固文件文件夹删除批处理无法删除文件

运行后提示找不到路径,大家帮忙看看:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p file=请将要删除的文件或文件夹拖动到这里:
  3. if not defined file goto end
  4. pause
  5. echo y|cacls "file" /t /c /g everyone:f>nul
  6. pause
  7. del /a /f /q "\\?\%file%">nul
  8. rd /s /q "\\?\%file%">nul
  9. pause
  10. :end
复制代码
ps:这里指的顽固文件或文件夹是windows方式下一般难删除的文件或文件夹,例如:“con”、“hehe.”等等。。。

[ 本帖最后由 愚无尽 于 2009-3-2 21:46 编辑 ]
作者: Batcher    时间: 2009-3-1 19:19

请问“顽固文件文件夹”长啥模样?
作者: 愚无尽    时间: 2009-3-1 20:41

原帖由 Batcher 于 2009-3-1 19:19 发表
请问“顽固文件文件夹”长啥模样?

比如:con\hehe.等等
作者: Batcher    时间: 2009-3-1 22:13     标题: 回复 3楼 的帖子

是否介意把所有的信息都跟新到顶楼?
作者: 愚无尽    时间: 2009-3-2 19:04

原以为这个批很简单,不了几乎找不到答案了?
作者: Batcher    时间: 2009-3-2 19:55     标题: 回复 5楼 的帖子

  1. @echo off
  2. set /p file=请将要删除的文件或文件夹拖动到这里:
  3. if not defined file goto end
  4. del /a /f /q "\\?\%file%" 2>nul
  5. rd /s /q "\\?\%file%" 2>nul
  6. :end
复制代码
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Test>md hehe..\

C:\Test>md con\

C:\Test>dir /b
con
hehe.
test.bat

C:\Test>test.bat
请将要删除的文件或文件夹拖动到这里:C:\Test\hehe.

C:\Test>dir /b
con
test.bat

C:\Test>test.bat
请将要删除的文件或文件夹拖动到这里:C:\Test\con

C:\Test>dir /b
test.bat

作者: 愚无尽    时间: 2009-3-2 20:12

原帖由 Batcher 于 2009-3-2 19:55 发表
@echo off
set /p file=请将要删除的文件或文件夹拖动到这里:
if not defined file goto end
del /a /f /q "\\?\%file%" 2>nul
rd /s /q "\\?\%file%" 2>nul
:endMicrosoft Windows XP [版本 5.1.2600]
(C) 版 ...

巡查果然厉害,化繁为简,倒轻松解决了问题?能否给我及大家讲讲,原来存在的问题,而现在成功的原因。抛砖引玉的给大家受益。
作者: Batcher    时间: 2009-3-2 20:55     标题: 回复 7楼 的帖子

@echo off&setlocal enabledelayedexpansion%请问这里启用变量延迟扩展有什么用?%
set /p file=请将要删除的文件或文件夹拖动到这里:
if not defined file goto end
pause
echo y|cacls "file" /t /c /g everyone:f>nul%请问file变量为何不加百分号?%
pause
del /a /f /q "\\?\%file%">nul
rd /s /q "\\?\%file%">nul
pause
:end

另,“抛砖引玉”这个成语一般来说是自谦的说法,建议别乱用^_^
作者: 愚无尽    时间: 2009-3-2 21:44     标题: 回复 8楼 的帖子

呵呵,我等菜级,不敢自谦自居,上面的抛砖引玉,已经换了变量了,看来变量没有延迟哈。。。
作者: Batcher    时间: 2009-3-2 21:45     标题: 回复 9楼 的帖子

如果有人帮你解决了问题,建议进行以下操作:

1、修改帖子标题,在标题最前面注明:【已结】

2、给竭尽全力帮你的人、正确回答问题的人加分(你自己的积分不会减少)以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。

3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享一下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。

作者: cmbatd    时间: 2009-3-6 12:16

\\?\请问这是可以代表每个盘符吗?是什么意思啊?
%%可以代表注释不?
作者: Batcher    时间: 2009-3-6 12:19     标题: 回复 11楼 的帖子

不是。是UNC路径的意思。
可以。




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