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

【方案一】以点结尾的文件夹 代码:
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"

转载于:https://www.cnblogs.com/94YY/archive/2011/06/05/2072946.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用bat批处理重命名批量的jpg文件,我们可以编写一个批处理脚本来自动完成这个任务。 首先,我们需要在文本编辑器中打开一个新的文件。然后,我们可以使用以下的命令来重命名jpg文件: ``` @echo off setlocal enabledelayedexpansion set "folder=C:\path\to\your\folder\" set "extension=.jpg" set "newNamePrefix=MyImage" for %%a in ("%folder%*%extension%") do ( set "filename=%%~na" rename "%%a" "!newNamePrefix!_!filename!!extension!" ) echo Renaming complete pause ``` 在上述代码中,我们首先使用了`@echo off`命令来关闭命令的显示。然后,我们使用了`setlocal enabledelayedexpansion`命令来启用对变量的延迟扩展,这对于在循环中使用变量很有用。 接下来,我们设置了要重命名文件夹路径,文件扩展名和新文件名的前缀。你可以根据自己的需要修改这些值。 在循环中,我们使用`for`命令来遍历文件夹中的所有jpg文件。`%%a`是循环变量,`"%folder%*%extension%"`指定了要重命名文件路径。 然后,我们使用`set "filename=%%~na"`命令将文件名保存到变量`filename`中,不包括扩展名。 最后,我们使用`rename`命令来将原始文件重命名为新的文件名。新的文件名由`!newNamePrefix!_!filename!!extension!`组成,其中`!newNamePrefix!`是我们指定的新文件名的前缀。 最后,我们显示一个提示信息并暂停命令的执行,以便查看重命名是否成功。 编写完批处理脚本后,我们可以将它保存为以.bat为扩展名的文件,例如`renamejpg.bat`。然后,双击运行这个脚本,它将自动完成批量jpg文件重命名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值