|
批处理实现畸形文件、文件夹创建、访问、重命名、删除
转自:http://bathome.l3.wuyou.com/thread-3885-1-1.html
【方案一】以点结尾的文件夹
- 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.net>"\\?\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.net>"\\?\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"
复制代码
|
|
|