查看: 10652|回复: 19
收起左侧

[系统] 请教一下:如何有效地创建特殊字符文件夹(\, /, :, *, ?, ", <, >, |)?

[复制链接]
gwsbhqt
头像被屏蔽
发表于 2013-11-20 07:29:23 | 显示全部楼层 |阅读模式
最近在学习学习8.3命名规则和搞搞非法命名,结果遇到了难题
带点的带空格的带设备保留字的三点隐形的右键瞬间崩溃的神马文件夹都搞会了,可是就是特殊字符文件夹(\, /, :, *, ?, ", <, >, |)死活做不成...
特此前来求助卡饭茶楼各热心高手大大大牛大神...小白不胜感激...
附上参考链接:
方案四
http://www.bathome.net /thread-3885-1-3.html
确实看不懂呀~
翼风Fly
发表于 2013-11-20 11:08:59 | 显示全部楼层
你那个链接进不去啊。。。。
先试试畸形目录如何?
我也不是特别懂,问问度娘吧。。。。畸形目录
gwsbhqt
头像被屏蔽
 楼主| 发表于 2013-11-20 12:43:29 | 显示全部楼层

RE: 请教一下:如何有效地创建特殊字符文件夹(\, /, :, *, ?,

翼风Fly 发表于 2013-11-20 11:08
你那个链接进不去啊。。。。
先试试畸形目录如何?
我也不是特别懂,问问度娘吧。。。。畸形目录

你绝对没有看帖...
引用“带点的带空格的带设备保留字的三点隐形的右键瞬间崩溃的神马文件夹都搞会了”
翼风Fly
发表于 2013-11-20 12:46:16 | 显示全部楼层
gwsbhqt 发表于 2013-11-20 12:43
你绝对没有看帖...
引用“带点的带空格的带设备保留字的三点隐形的右键瞬间崩溃的神马文件夹都搞会了”

我错了。。。

刚刚搞明白。。。你给的链接多了个空格。。。
gwsbhqt
头像被屏蔽
 楼主| 发表于 2013-11-20 13:03:59 | 显示全部楼层

RE: 请教一下:如何有效地创建特殊字符文件夹(\, /, :, *, ?,

翼风Fly 发表于 2013-11-20 12:46
我错了。。。

刚刚搞明白。。。你给的链接多了个空格。。。

手机发帖能有完整网址就不错了...不奢求完美
翼风Fly
发表于 2013-11-20 13:20:54 | 显示全部楼层
gwsbhqt 发表于 2013-11-20 13:03
手机发帖能有完整网址就不错了...不奢求完美

我似乎搞明白了。。。。这恐怕不是畸形目录,而是利用注册表通过LocalizedResourceName(本地资源名?)实现,这个批处理实质就是在操作注册表。
http://baike.baidu.com/view/5029531.htm

你可以做这样的实验:
1、新建reg文件:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName]
"@$comeonbaby$"="猜猜我叫啥名字???"

然后倒入到注册表
2、新建文件夹,通过attrib将其设置为系统文件夹;文件夹名为$comeonbaby$,里面新建隐藏的系统文件desktop.ini,内容:
[.ShellClassInfo]
LocalizedResourceName=@$comeonbaby$


XP有效,win7可能无效
也就是说,其实是个障眼法而已,实际路径名还是无法插入那些特殊字符的
gwsbhqt
头像被屏蔽
 楼主| 发表于 2013-11-20 15:18:30 | 显示全部楼层

RE: 请教一下:如何有效地创建特殊字符文件夹(\, /, :, *, ?,

翼风Fly 发表于 2013-11-20 13:20
我似乎搞明白了。。。。这恐怕不是畸形目录,而是利用注册表通过LocalizedResourceName(本地资源名?)实 ...

我中午测试那个批处理之家的代码的时候已经意识到,这东西不是特殊符号文件...
实际上我还是搞不懂...其他的什么畸形即使是保留设备名都扛不住那两句带USN路径的强制删除,但是这东西竟然扛住了!
我又狗狗了一下,实在看不明白这本地资源名到底有什么特殊的...
所以想请你帮我实验确认一下(我是手机党...)所有路径对于原批处理之家连接方法4为准
1.那个nul到底是文件夹还是文件?我看见的是“系统文件”,你说他是障眼法,那就是说他是一个文件夹咯?
2.batchB文件夹里为什么有两个desktop.ini(其实有一个是deskto p.ini),为什么这么做,有什么用处?
3.实际关键的语句是哪几句?希望可以精简一下
4.nul为什么连带USN路径的强制删除命令都无效?原理是什么?
5.对什么系统生效?生成的文件如果在优盘防删效果对其他电脑如果?
灰常感谢...
好吧,其实你也可以研究研究~把结论结果分享一下给我就好...
我一定会求版主大大拼命加你分的...
gwsbhqt
头像被屏蔽
 楼主| 发表于 2013-11-20 15:27:33 | 显示全部楼层

RE: 请教一下:如何有效地创建特殊字符文件夹(\, /, :, *, ?,

本帖最后由 gwsbhqt 于 2013-11-20 15:29 编辑
翼风Fly 发表于 2013-11-20 13:20
我似乎搞明白了。。。。这恐怕不是畸形目录,而是利用注册表通过LocalizedResourceName(本地资源名?)实 ...


路径保留字“|>”真的可以有!不信你看连接...
http://hi.baidu.com/wise/80age/item/6b9ac0261d433fd7a517b652
gwsbhqt
头像被屏蔽
 楼主| 发表于 2013-11-20 15:31:14 | 显示全部楼层
见上一个连接最后一张图,如果连接坏了请回复我,我修正
路径保留字可以出现在文件名中,可是哪个家伙不肯说,可恶!
翼风Fly
发表于 2013-11-20 16:56:58 | 显示全部楼层
本帖最后由 翼风Fly 于 2013-11-20 18:03 编辑
gwsbhqt 发表于 2013-11-20 15:18
我中午测试那个批处理之家的代码的时候已经意识到,这东西不是特殊符号文件...
实际上我还是搞不懂...其 ...


可以事先说明一点,方案四那些代码在Win7已经全面失效,XP有效。至于Linux还有MAC就更不用想了,连注册表都没有(如果能读取NTFS或者FAT的话,这点我不是特别清楚)

1、文件(XP,win7没有文件,操作失败)。至于我说的“障眼法”,你理解错了,我说的是针对那个文件夹。文件夹的实际名称并非是在资源管理器看起来那样,是通过Windows注册表改的,(HKCU\Software\Microsoft\Windows\Shell\LocalizedResourceName),并且要配合desktop.ini的使用,同时文件夹名称要和desktop.ini里的名称同步(这应该是批处理之家帖子里没处理好的地方了)。此方法不适用于Win7。也就是说,如果你希望通过这个批处理建立真正的特殊字符,行不通。
2、XP环境:只有一个desktop.ini,那个语句desktop.ini写内容的,而且这两块内容不能拆开,应该是帖子的笔误;另一个是没有扩展名的nul,系统保留字文件。win7失效,管理员权限亦无效
3、最关键的。。。注册表那一块,还有attrib、加权,但是似乎不能精简了
4、只能看到nul文件,无法操作,报错:windows无法访问指定设备路径或文件。关键可能在"?"上,普通办法应该无法访问,不合法。
另外。。你说的USN强制删除是啥我都不知道(好吧,竟然是UNC)。。。魔方粉碎报告粉碎了两个文件(竟然是两个。。。)但是全都失败
5、目前对XP+NTFS生效,对Win7+NTFS全面失效。文件夹不是你想要的名称(通过注册表失效),而且也没有nul文件
另外,帖子里对注册表的操作估计有问题,效果无法正常实现,而且注册表编辑器的对应值无法修改,会报错。不过我在6楼的应该没问题。
win7报错:
文件名、目录名或卷标语法不正确。
找不到文件 - \\?\C:\test\batcherB\\nul
系统找不到指定的文件。
找不到文件 - C:\test\batcherB\


我写了些注释,你看看对不对
  1. rem 创建特殊字符文件夹
  2. @echo off
  3. rem 设置变量
  4. set "DstFolder=C:\test\batcherA"
  5. if exist "%DstFolder%" (
  6.   echo 文件夹%DstFolder%已存在
  7.   goto :eof
  8. )
  9. rem 创建文件夹
  10. md "%DstFolder%"
  11. rem  创建desktop.ini及内容
  12. >"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
  13. >>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
  14. rem 将desktop.ini设置系统属性并隐藏
  15. attrib +s +h "%DstFolder%\desktop.ini"
  16. rem 配置注册表
  17. >%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]
  18. regini %temp%\UnlockReg.txt
  19. >%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]
  20. >>%temp%\LockReg.txt  echo "BatHome,-1" = REG_SZ "|"
  21. regini %temp%\LockReg.txt
  22. rem 添加系统属性
  23. attrib +s "%DstFolder%"
复制代码
  1. rem 创建无法直接删除的特殊字符文件夹
  2. @echo off
  3. rem  配置变量
  4. set "DstFolder=C:\test\batcherB"
  5. if exist "%DstFolder%" (

  6.   rem echo y|cacls "\\?\%DstFolder%\nul" /g everyone:f
  7.   rem attrib -r -a -s -h "\\?\%DstFolder%\nul"
  8.   rem del /a /f /q "\\?\%DstFolder%\nul"

  9.   echo 文件夹%DstFolder%已存在
  10.   goto :eof
  11. )
  12. rem 创建文件夹
  13. md "%DstFolder%"
  14. rem 创建desktop.ini并设置属性
  15. >"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
  16. >>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
  17. attrib +s +h "%DstFolder%\desktop.ini"

  18. rem 创建奇葩的nul文件
  19. >"\\?\%DstFolder%\nul" echo.

  20. rem 怎么还要设置desktop.ini属性,还一模一样?
  21. attrib +s +h "%DstFolder%\desktop.ini"

  22. rem 设置注册表
  23. >%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]
  24. regini %temp%\UnlockReg.txt
  25. >%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]
  26. >>%temp%\LockReg.txt  echo "BatHome,-1" = REG_SZ "|"
  27. regini %temp%\LockReg.txt

  28. rem 加各种属性
  29. attrib +r +a +s +h "\\?\%DstFolder%\nul"
  30. rem 改权限
  31. echo y|cacls "\\?\%DstFolder%\nul" /d everyone>nul
  32. rem 加属性
  33. attrib +s +r "%DstFolder%"
复制代码
亲~你看我都弄的那么透彻了,分一定要大大的哈~~
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-12 13:42 , Processed in 0.129015 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表