您的位置:首页 > 其它

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

2017-05-31 23:06 706 查看


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

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

    





  下载LOFTER我的照片书  |

【方案一】以点结尾的文件夹

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|举报|字号 订阅

    





  下载LOFTER我的照片书  |

【方案一】以点结尾的文件夹

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 复制代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐