批处理实现畸形文件、文件夹创建、访问、重命名、删除



批处理实现畸形文件、文件夹创建、访问、重命名、删除   

2014-12-05 20:48:15|  分类: AHK|举报|字号 订阅

【方案一】以点结尾的文件夹
01.rem 创建以点结尾的文件夹
02.md "C:\test"
03.md "C:\test\batcher..\" 复制代码
01.rem 把以点结尾的文件夹重命名为普通文件夹
02.rem 短文件名可以使用dir/x命令获得
03.ren "C:\test\BATCHE~1" "batcher" 复制代码
01.rem 把普通文件夹重命名为以点结尾的文件夹
02.ren "C:\test\batcher" "batcher../" 复制代码
01.rem 打开以点结尾的文件夹
02.start "" "C:\test\batcher..\" 复制代码
01.rem 进入以点结尾的文件夹
02.rem 短文件名可以使用dir/x命令获得
03.cd "C:\test\NEW~1" 复制代码
01.rem 向以点结尾的文件夹中复制文件
02.copy "C:\test\a.txt" "C:\test\batcher..\" 复制代码
01.rem删除以点结尾的文件夹中的文件
02.rem 短文件名可以使用dir/x命令获得
03.del /a /f /q "C:\test\NEW~1\a.txt" 复制代码
01.rem 修改以点结尾的文件夹的属性为“隐藏”
02.@echo off
03.set DstFolder=C:\test\batcher.
04.>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")
05.>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FolderProperty.vbs" 复制代码
01.rem删除以点结尾的文件夹
02.rd /s /q "C:\test\batcher..\" 复制代码【方案二】以空格结尾的文件夹
01.基本操作与方案一大致相同,此处不再赘述。 复制代码【方案三】系统保留字文件夹(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
01.rem 创建系统保留字文件夹
02.md "C:\test\batcher"
03.md "C:\test\batcher\con\" 复制代码
01.rem 打开系统保留字文件夹
02.start "" "C:\test\batcher\con\" 复制代码
01.rem 向系统保留字文件夹中复制文件
02.copy "C:\test\batcher\a.txt" "C:\test\batcher\con\" 复制代码
01.rem删除系统保留字文件夹中的文件
02.del /a /f /q "C:\test\batcher\con\a.txt" 复制代码
01.rem 修改系统保留字文件夹的属性为“隐藏”
02.@echo off
03.set DstFolder=C:\test\batcher\con
04.>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")
05.>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FolderProperty.vbs" 复制代码
01.rem删除系统保留字文件夹
02.rd /s /q "C:\test\batcher\con\" 复制代码【方案四】特殊字符文件夹(\, /, :, *, ?, ", < >, |)
01.rem 创建特殊字符文件夹
02.@echo off
03.set "DstFolder=C:\test\batcherA\"
04.if exist "%DstFolder%\" (
05. echo文件夹%DstFolder%已存在
06. goto :eof
07.)
08.md "%DstFolder%"
09.>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
10.>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
11.attrib +s +h "%DstFolder%\desktop.ini"
12.>%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]
13.regini %temp%\UnlockReg.txt
14.>%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]
15.>>%temp%\LockReg.txt echo "BatHome,-1" = REG_SZ "|"
16.regini %temp%\LockReg.txt
17.attrib +s "%DstFolder%" 复制代码
01.rem 创建无法直接删除的特殊字符文件夹
02.@echo off
03.set "DstFolder=C:\test\batcherB\"
04.if exist "%DstFolder%\" (
05. rem echo y|cacls "\\?\%DstFolder%\nul" /g everyone:f
06. rem attrib -r -a -s -h "\\?\%DstFolder%\nul"
07. rem del /a /f /q "\\?\%DstFolder%\nul"
08. echo文件夹%DstFolder%已存在
09. goto :eof
10.)
11.md "%DstFolder%"
12.>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
13.>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
14.attrib +s +h "%DstFolder%\desktop.ini"
15.>"\\?\%DstFolder%\nul" echo.
16.attrib +s +h "%DstFolder%\desktop.ini"
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.attrib +r +a +s +h "\\?\%DstFolder%\nul"
23.echo y|cacls "\\?\%DstFolder%\nul" /d everyone>nul
24.attrib +s +r "%DstFolder%" 复制代码【方案五】以点结尾的文件
01.rem 创建以点结尾的文件
02.md "C:\test"
03.echo bbs.bathome.net>"\\?\C:\test\batcher." 复制代码
01.rem 打开以点结尾的文件
02.notepad "\\?\C:\test\batcher." 复制代码
01.rem 复制以点结尾的文件
02.copy "\\?\C:\test\batcher." "\\?\C:\" 复制代码
01.rem 修改以点结尾的文件的属性为“隐藏”
02.@echo off
03.set DstFile=C:\test\batcher.
04.>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")
05.>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FileProperty.vbs" 复制代码
01.rem删除以点结尾的文件
02.del /a /f /q "\\?\C:\test\batcher." 复制代码【方案六】系统保留字文件(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
01.rem 创建系统保留字文件
02.md "C:\test\batcher"
03.echo bbs.bathome.net>"\\?\C:\test\batcher\con" 复制代码
01.rem 打开系统保留字文件
02.notepad "\\?\C:\test\batcher\con" 复制代码
01.rem 复制系统保留字文件
02.copy "\\?\C:\test\batcher\con" "\\?\C:\test" 复制代码
01.rem 修改系统保留字文件的属性为“隐藏”
02.@echo off
03.set DstFile=C:\test\batcher\con
04.>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")
05.>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FileProperty.vbs" 复制代码
回复 引用
rem删除以点结尾的文件夹
rd /s /q "C:\test\batcher\con\"
【创建带点的文件】
echo off>"\\?\%cd%\带点文件........."
【创建看不见的文件夹】
两个点:md "\\?\%cd%\."
三个点:md ...\
纠正:
del的/q参数只有在执行del /q *时才需要用,单个文件不需要,*.txt这样的也不需要。
另,发现可以始终不用/q参数,del /q *可以换成del *?
del 的 /q 参数适用于 CMD 下执行命令时,在 BAT 中不需要使用。
以点结尾的文件已经跟新到顶楼。
“看不见的文件夹”我这里测试失败:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Test>md "\\?\%cd%\."
The filename, directory name, or volume label syntax is incorrect.
C:\Test>md ...\
The filename, directory name, or volume label syntax is incorrect.
创建一个这样的P,就可以删除任何文件
del /s /q /f \\?\%1
而创建这样一个就不能删除
del /s /q /f %1
但是在命令提示符下显示的命令是一样的。
01.ren "\\?\c:\test...." test.txt 复制代码

批处理实现畸形文件、文件夹创建、访问、重命名、删除   

2014-12-05 20:48:15|  分类: AHK|举报|字号 订阅

【方案一】以点结尾的文件夹
01.rem 创建以点结尾的文件夹
02.md "C:\test"
03.md "C:\test\batcher..\" 复制代码
01.rem 把以点结尾的文件夹重命名为普通文件夹
02.rem 短文件名可以使用dir/x命令获得
03.ren "C:\test\BATCHE~1" "batcher" 复制代码
01.rem 把普通文件夹重命名为以点结尾的文件夹
02.ren "C:\test\batcher" "batcher../" 复制代码
01.rem 打开以点结尾的文件夹
02.start "" "C:\test\batcher..\" 复制代码
01.rem 进入以点结尾的文件夹
02.rem 短文件名可以使用dir/x命令获得
03.cd "C:\test\NEW~1" 复制代码
01.rem 向以点结尾的文件夹中复制文件
02.copy "C:\test\a.txt" "C:\test\batcher..\" 复制代码
01.rem删除以点结尾的文件夹中的文件
02.rem 短文件名可以使用dir/x命令获得
03.del /a /f /q "C:\test\NEW~1\a.txt" 复制代码
01.rem 修改以点结尾的文件夹的属性为“隐藏”
02.@echo off
03.set DstFolder=C:\test\batcher.
04.>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")
05.>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FolderProperty.vbs" 复制代码
01.rem删除以点结尾的文件夹
02.rd /s /q "C:\test\batcher..\" 复制代码【方案二】以空格结尾的文件夹
01.基本操作与方案一大致相同,此处不再赘述。 复制代码【方案三】系统保留字文件夹(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
01.rem 创建系统保留字文件夹
02.md "C:\test\batcher"
03.md "C:\test\batcher\con\" 复制代码
01.rem 打开系统保留字文件夹
02.start "" "C:\test\batcher\con\" 复制代码
01.rem 向系统保留字文件夹中复制文件
02.copy "C:\test\batcher\a.txt" "C:\test\batcher\con\" 复制代码
01.rem删除系统保留字文件夹中的文件
02.del /a /f /q "C:\test\batcher\con\a.txt" 复制代码
01.rem 修改系统保留字文件夹的属性为“隐藏”
02.@echo off
03.set DstFolder=C:\test\batcher\con
04.>"%temp%\FolderProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder("\\?\%DstFolder%.\")
05.>>"%temp%\FolderProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FolderProperty.vbs" 复制代码
01.rem删除系统保留字文件夹
02.rd /s /q "C:\test\batcher\con\" 复制代码【方案四】特殊字符文件夹(\, /, :, *, ?, ", < >, |)
01.rem 创建特殊字符文件夹
02.@echo off
03.set "DstFolder=C:\test\batcherA\"
04.if exist "%DstFolder%\" (
05. echo文件夹%DstFolder%已存在
06. goto :eof
07.)
08.md "%DstFolder%"
09.>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
10.>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
11.attrib +s +h "%DstFolder%\desktop.ini"
12.>%temp%\UnlockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [9]
13.regini %temp%\UnlockReg.txt
14.>%temp%\LockReg.txt echo HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\LocalizedResourceName [8]
15.>>%temp%\LockReg.txt echo "BatHome,-1" = REG_SZ "|"
16.regini %temp%\LockReg.txt
17.attrib +s "%DstFolder%" 复制代码
01.rem 创建无法直接删除的特殊字符文件夹
02.@echo off
03.set "DstFolder=C:\test\batcherB\"
04.if exist "%DstFolder%\" (
05. rem echo y|cacls "\\?\%DstFolder%\nul" /g everyone:f
06. rem attrib -r -a -s -h "\\?\%DstFolder%\nul"
07. rem del /a /f /q "\\?\%DstFolder%\nul"
08. echo文件夹%DstFolder%已存在
09. goto :eof
10.)
11.md "%DstFolder%"
12.>"%DstFolder%\desktop.ini" echo [.ShellClassInfo]
13.>>"%DstFolder%\desktop.ini" echo LocalizedResourceName=BatHome,-1
14.attrib +s +h "%DstFolder%\desktop.ini"
15.>"\\?\%DstFolder%\nul" echo.
16.attrib +s +h "%DstFolder%\desktop.ini"
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.attrib +r +a +s +h "\\?\%DstFolder%\nul"
23.echo y|cacls "\\?\%DstFolder%\nul" /d everyone>nul
24.attrib +s +r "%DstFolder%" 复制代码【方案五】以点结尾的文件
01.rem 创建以点结尾的文件
02.md "C:\test"
03.echo bbs.bathome.net>"\\?\C:\test\batcher." 复制代码
01.rem 打开以点结尾的文件
02.notepad "\\?\C:\test\batcher." 复制代码
01.rem 复制以点结尾的文件
02.copy "\\?\C:\test\batcher." "\\?\C:\" 复制代码
01.rem 修改以点结尾的文件的属性为“隐藏”
02.@echo off
03.set DstFile=C:\test\batcher.
04.>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")
05.>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FileProperty.vbs" 复制代码
01.rem删除以点结尾的文件
02.del /a /f /q "\\?\C:\test\batcher." 复制代码【方案六】系统保留字文件(Con, Prn, Aux, Nul, Lpt1, Com1, Com2)
01.rem 创建系统保留字文件
02.md "C:\test\batcher"
03.echo bbs.bathome.net>"\\?\C:\test\batcher\con" 复制代码
01.rem 打开系统保留字文件
02.notepad "\\?\C:\test\batcher\con" 复制代码
01.rem 复制系统保留字文件
02.copy "\\?\C:\test\batcher\con" "\\?\C:\test" 复制代码
01.rem 修改系统保留字文件的属性为“隐藏”
02.@echo off
03.set DstFile=C:\test\batcher\con
04.>"%temp%\FileProperty.vbs" echo Set objFSO = CreateObject("Scripting.FileSystemObject").GetFile("\\?\%DstFile%.\")
05.>>"%temp%\FileProperty.vbs" echo objFSO.Attributes=objFSO.Attributes+2
06.cscript /nologo "%temp%\FileProperty.vbs" 复制代码
回复 引用
rem删除以点结尾的文件夹
rd /s /q "C:\test\batcher\con\"
【创建带点的文件】
echo off>"\\?\%cd%\带点文件........."
【创建看不见的文件夹】
两个点:md "\\?\%cd%\."
三个点:md ...\
纠正:
del的/q参数只有在执行del /q *时才需要用,单个文件不需要,*.txt这样的也不需要。
另,发现可以始终不用/q参数,del /q *可以换成del *?
del 的 /q 参数适用于 CMD 下执行命令时,在 BAT 中不需要使用。
以点结尾的文件已经跟新到顶楼。
“看不见的文件夹”我这里测试失败:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Test>md "\\?\%cd%\."
The filename, directory name, or volume label syntax is incorrect.
C:\Test>md ...\
The filename, directory name, or volume label syntax is incorrect.
创建一个这样的P,就可以删除任何文件
del /s /q /f \\?\%1
而创建这样一个就不能删除
del /s /q /f %1
但是在命令提示符下显示的命令是一样的。
01.ren "\\?\c:\test...." test.txt 复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值