您的位置:首页 > 其它

(方案汇总)批处理中畸形文件夹和畸形文件的创建、访问、删除

2009-04-29 09:50 465 查看
【方案一】以点结尾的文件夹
复制内容到剪贴板
代码:
rem 创建以点结尾的文件夹

md "C:\test"

md "C:\test\batcher..\"


复制内容到剪贴板
代码:

rem 把以点结尾的文件夹重命名为普通文件夹

rem 短文件名可以使用dir/x命令获得

ren "C:\test\BATCHE~1" "batcher"


复制内容到剪贴板
代码:

rem 把普通文件夹重命名为以点结尾的文件夹

ren "C:\test\batcher" "batcher../"


复制内容到剪贴板
代码:

rem 打开以点结尾的文件夹

start "" "C:\test\batcher..\"


复制内容到剪贴板
代码:

rem 进入以点结尾的文件夹

rem 短文件名可以使用dir/x命令获得

cd "C:\test\NEW~1"


复制内容到剪贴板
代码:

rem 向以点结尾的文件夹中复制文件

copy "C:\test\a.txt" "C:\test\batcher..\"


复制内容到剪贴板
代码:

rem 删除以点结尾的文件夹中的文件

rem 短文件名可以使用dir/x命令获得

del /a /f /q "C:\test\NEW~1\a.txt"


复制内容到剪贴板
代码:

rem 修改以点结尾的文件夹的属性为“隐藏”

@echo off

set DstFolder=C:\test\batcher.

>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")

>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2

cscript /nologo "%temp%\FolderProperty.vbs"


复制内容到剪贴板
代码:

rem 删除以点结尾的文件夹

rd /s /q "C:\test\batcher..\"


【方案二】以空格结尾的文件夹
复制内容到剪贴板
代码:

基本操作与方案一大致相同,此处不再赘述。


【方案三】系统保留字文件夹(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
复制内容到剪贴板
代码:

rem 创建系统保留字文件夹

md "C:\test\batcher"

md "C:\test\batcher\con\"


复制内容到剪贴板
代码:

rem 打开系统保留字文件夹

start "" "C:\test\batcher\con\"


复制内容到剪贴板
代码:

rem 向系统保留字文件夹中复制文件

copy "C:\test\batcher\a.txt" "C:\test\batcher\con\"


复制内容到剪贴板
代码:

rem 删除系统保留字文件夹中的文件

del /a /f /q "C:\test\batcher\con\a.txt"


复制内容到剪贴板
代码:

rem 修改系统保留字文件夹的属性为“隐藏”

@echo off

set DstFolder=C:\test\batcher\con

>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")

>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2

cscript /nologo "%temp%\FolderProperty.vbs"


复制内容到剪贴板
代码:

rem 删除系统保留字文件夹

rd /s /q "C:\test\batcher\con\"


【方案四】特殊字符文件夹(\, /, :, *, ?, ", <, >, |)
复制内容到剪贴板
代码:

rem 创建特殊字符文件夹

@echo off

set "DstFolder=C:\test\batcherA\"

if exist "%DstFolder%\" (

echo 文件夹%DstFolder%已存在

goto :eof

)

md "%DstFolder%"

>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]

>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1

attrib +s +h "%DstFolder%\desktop.ini"

>%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]

regini %temp%\UnlockReg.txt

>%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]

>>%temp%\LockReg.txt  echo "BatHome,-1" = REG_SZ "|"

regini %temp%\LockReg.txt

attrib +s "%DstFolder%"


复制内容到剪贴板
代码:

rem 创建无法直接删除的特殊字符文件夹

@echo off

set "DstFolder=C:\test\batcherB\"

if exist "%DstFolder%\" (

rem echo y|cacls "\\?\%DstFolder%\nul" /g everyone:f

rem attrib -r -a -s -h "\\?\%DstFolder%\nul"

rem del /a /f /q "\\?\%DstFolder%\nul"

echo 文件夹%DstFolder%已存在

goto :eof

)

md "%DstFolder%"

>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]

>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1

attrib +s +h "%DstFolder%\desktop.ini"

>"\\?\%DstFolder%\nul" echo.

attrib +s +h "%DstFolder%\desktop.ini"

>%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]

regini %temp%\UnlockReg.txt

>%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]

>>%temp%\LockReg.txt  echo "BatHome,-1" = REG_SZ "|"

regini %temp%\LockReg.txt

attrib +r +a +s +h "\\?\%DstFolder%\nul"

echo y|cacls "\\?\%DstFolder%\nul" /d everyone>nul

attrib +s +r "%DstFolder%"


【方案五】以点结尾的文件
复制内容到剪贴板
代码:

rem 创建以点结尾的文件

md "C:\test"

echo bbs.bathome.cn>"\\?\C:\test\batcher."


复制内容到剪贴板
代码:

rem 打开以点结尾的文件

notepad "\\?\C:\test\batcher."


复制内容到剪贴板
代码:

rem 复制以点结尾的文件

copy "\\?\C:\test\batcher." "\\?\C:\"


复制内容到剪贴板
代码:

rem 修改以点结尾的文件的属性为“隐藏”

@echo off

set DstFile=C:\test\batcher.

>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")

>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2

cscript /nologo "%temp%\FileProperty.vbs"


复制内容到剪贴板
代码:

rem 删除以点结尾的文件

del /a /f /q "\\?\C:\test\batcher."


【方案六】系统保留字文件(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
复制内容到剪贴板
代码:

rem 创建系统保留字文件

md "C:\test\batcher"

echo bbs.bathome.cn>"\\?\C:\test\batcher\con"


复制内容到剪贴板
代码:

rem 打开系统保留字文件

notepad "\\?\C:\test\batcher\con"


复制内容到剪贴板
代码:

rem 复制系统保留字文件

copy "\\?\C:\test\batcher\con" "\\?\C:\test"


复制内容到剪贴板
代码:

rem 修改系统保留字文件的属性为“隐藏”

@echo off

set DstFile=C:\test\batcher\con

>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")

>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2

cscript /nologo "%temp%\FileProperty.vbs"


复制内容到剪贴板
代码:

rem 删除系统保留字文件

del /a /f /q "\\?\C:\test\batcher\con"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: