批处理创建、访问、重命名、删除畸形文件/文件夹
【方案一】以点结尾的文件夹 代码:
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"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库