bat生成工具(批量 删除文件/复制文件/删除文件夹/重命名文件)

Batch文件能完成一些批量重复操作。不想在每次用到重新编写一个.bat文件,所以这里用一个工具(.bat)去生成一个用于具体批量操作的.bat文件。
工具的batch代码在文档的最后面。新建一个文本文档,将代码黏贴到文档中,将文件类型改为bat,这时候就得到一个.bat文件(bat生成.bat)。
双击 bat生成.bat,能看到如下的界面。这里只实现了4个简单的功能,可以在这个基础上添加新的功能。后面对这4个功能的使用进行说明。
在这里插入图片描述

1. 批量删除文件夹及其内的所有文件

删除该目录树下所有指定名称的文件夹和文件夹下所有子文件夹和文件。
双击 bat生成.bat,进入窗口,进行如下操作:

  • 提示 Choice,输入1,回车
  • 提示 FolderName,输入要删除的文件夹名称(Delete1),回车
  • 重新提示Choice:如果无其他操作,输入Q,回车,退出窗口;如果还需要其他批量操作,重复上述步骤。
    在这里插入图片描述
    此时会在bat生成.bat文件相同路径下生成一个file.bat文件。
    在这里插入图片描述
    file.bat文件放置于某个目录下,双击file.bat文件,就会删除该目录树下所有名为Delete1(根据自己设置)的文件夹和文件夹下所有子文件夹和文件。

2. 批量复制

复制指定文件到所有指定名称的文件夹下,如已有该文件,则进行替换
双击 bat生成.bat,进入窗口,进行如下操作:

  • 提示 Choice,输入2,回车
  • 提示 CopyFileName,输入要复制文件的文件名,回车
  • 提示CopyFolderName,输入文件复制的目标目录,回车
  • 重新提示Choice:如果无其他操作,输入Q,回车,退出窗口;如果还需要其他批量操作,重复上述步骤。
    在这里插入图片描述
    此时会在bat生成.bat文件相同路径下生成一个file.bat文件。

file.batNew.txt文件放置于某个目录下,双击file.bat文件,就会将New.txt复制到该目录下所有的Test0文件夹下。

3. 删除文件

删除目录树下所有指定文件
**双击 bat生成.bat,进入窗口,进行如下操作:

  • 提示 Choice,输入3,回车
  • 提示 DelFileName,输入要删除文件的文件名,回车
  • 重新提示Choice:如果无其他操作,输入Q,回车,退出窗口;如果还需要其他批量操作,重复上述步骤。
    在这里插入图片描述
    此时会在bat生成.bat文件相同路径下生成一个file.bat文件。

file.bat文件放置于某个目录下,双击file.bat文件,就会删除该目录树下所有的New.txt文件。

4. 重命名文件

这里的作用就相对较多了。下面对批量修改文件类型进行了详细说明。其实看完批量修改文件类型说明就应该明白了该操作的原理了。
执行该file.bat(由 bat生成.bat 生成)文件时,会将该目录下的所有文件(不包括文件夹)看成若干个字符串(包括"."以及文件的后缀名),然后进行搜索和替换的工作。

  • 要对所有文件进行操作,File type设置可以使用通配符*
  • 限定待操作文件的类型,如只对txt文件操作,File type可以设置成 *.txt
  • 如果文件名存在多个点“.”,就可能造成预期之外的修改。如new.txt.txt可能内改为new.c.c

批量修改文件类型

**双击 bat生成.bat,进入窗口,进行如下操作:

  1. 提示 Choice,输入4,回车
  2. 提示 File type,输入文件类型,如 *,回车
  3. 提示 Find what,输入待替换的文件类型,如 .c,回车
  4. 提示 Replace with,输入要修改为什么类型,如 .txt,回车
  5. 重新提示Choice:如果无其他操作,输入Q,回车,退出窗口;如果还需要其他批量操作,重复上述步骤。
    在这里插入图片描述
    此时会在bat生成.bat文件相同路径下生成一个file.bat文件。

file.bat文件放置于待修改文件相同目录下,双击双击file.bat文件,就会将该路径下(仅该目录,不包括)的所有c文件修改为txt文件。
修改前
在这里插入图片描述
修改后
在这里插入图片描述

@echo off
cls
title Create bat file
set ifo=abcdefghijklmnopqrstuvwxyz0123456789

cls
color 0A
:menu
echo.
echo      ================================
echo      Select operation, press Enter
echo      ================================
echo.
echo      1. Delete folder, delete all files in folder.
echo.
echo      2. Copy file to folder.
echo.
echo      3. Delete files.
echo.
echo      4. Rename files.(act on the same level of catalog files)
echo.
echo      Q. Quit
echo.

echo @echo off>file.bat

:ChoiceOperation
set choice=
set /p choice=          Choice:
if not "%choice%"=="" set choice=%choice:~0,1%
if /i "%choice%"=="1" goto RemoveFolders
if /i "%choice%"=="2" goto CopyFile
if /i "%choice%"=="3" goto DeleteFiles
if /i "%choice%"=="4" goto RenameFiles
if /i "%choice%"=="Q" goto endd
echo Invalid, again
echo.
goto ChoiceOperation

REM 移除目录树下的文件夹
:RemoveFolders
echo RemoveFolders
set RemFchoice=
set /p RemFchoice=          FolderName:
set str1=for /r . %%%%d in (.) do rd /s /q "%%%%d\
set str1=%str1%%RemFchoice%"
set str2= %ifo:~28,1%
set str1=%str1%%str2%
echo %str1%^>nul >>file.bat
echo RemoveFolders OK
echo.
goto ChoiceOperation

REM 复制文件到目录树下的特定目录
:CopyFile
echo CopyFile
set CopyFileChoice=
set /p CopyFileChoice=    CopyFileName:
set CopyFolderChoice=
set /p CopyFolderChoice=    CopyFolderName:
set str1=for /r . %%%%a in ("%CopyFolderChoice%") do copy %CopyFileChoice% "%%%%a"
echo %str1% >>file.bat
set str2=del /s /a "%CopyFolderChoice%"
set str3= %ifo:~28,1%
echo %str2%%str3%^>nul >>file.bat
echo CopyFile OK
echo.
goto ChoiceOperation

REM 删除目录树下的所有特定文件
:DeleteFiles
echo DeleteFiles
set DelFileChoice=
set /p DelFileChoice=    DelFileName:
set str1=del /s /a "%DelFileChoice%"
set str2= %ifo:~28,1%
echo %str1%%str2%^>nul >>file.bat
echo DeleteFiles OK
echo.
goto ChoiceOperation

REM 重命名文件,作用于同级目录文件
:RenameFiles
echo RenameFiles
set Typechoice=
set /p Typechoice=          File type(*.type):
set Findchoice=
set /p Findchoice=          Find what:
set Replacechoice=
set /p Replacechoice=          Replace with:
set str2=%ifo:~36,1%
set str1=setlocal enabledelayedexpansion
echo %str1% >>file.bat
set str1=for %%%%i in (
set str2=%Typechoice%
set str1=%str1%%str2%
set str2=) do (
set str1=%str1%%str2%
echo %str1% >>file.bat
set str1=set ym=%%%%i
echo %str1% >>file.bat
set str1=set ym=!ym:
set str2=%Findchoice%
set str3=%Replacechoice%
set str1=%str1%%str2%=%str3%!
echo %str1% >>file.bat
set str1=if %%%%i neq !ym! (ren "%%%%i" "!ym!")
echo %str1% >>file.bat
set str1=)
echo %str1% >>file.bat
set str1=endlocal
echo %str1% >>file.bat
echo RenameFiles OK
echo.
goto ChoiceOperation

pause

:endd
echo exit>>file.bat
exit
  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用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文件重命名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值