引言:编写批处理程序,实现按给定长度分别去除当前目录下文件夹和文件的前缀和后缀(直接回车表示不去除)。
一、新建文本文件
- 鼠标右键---》【新建】---》【文本文档】。
二、写入批处理代码
- 双击打开新建的文本文件,在文本文件内写入以下代码:
@echo off
setlocal enabledelayedexpansion
set /p folderPrefixLength="请输入要去除的文件夹前缀长度(直接回车表示不去除): "
set /p folderSuffixLength="请输入要去除的文件夹后缀长度(直接回车表示不去除): "
set /p filePrefixLength="请输入要去除的文件前缀长度(直接回车表示不去除): "
set /p fileSuffixLength="请输入要去除的文件后缀长度(直接回车表示不去除): "
for /d %%F in (*) do (
set "folderName=%%~nxF"
if not "%folderPrefixLength%"=="" (
if "%folderPrefixLength%"=="-" (
set "folderName=!folderName:~%folderPrefixLength:~0,-1%!"
) else (
set "folderName=!folderName:~%folderPrefixLength%!"
)
)
if not "%folderSuffixLength%"=="" (
if "%folderSuffixLength%"=="-" (
set "folderName=!folderName:~0,-%folderSuffixLength:~0,-1%!"
) else (
set "folderName=!folderName:~0,-%folderSuffixLength%!"
)
)
if not "!folderName!"=="%%~nxF" (
ren "%%F" "!folderName!"
)
)
for %%F in (*) do (
set "fileName=%%~nF"
set "fileExtension=%%~xF"
if not "%filePrefixLength%"=="" (
if "%filePrefixLength%"=="-" (
set "fileName=!fileName:~%filePrefixLength:~0,-1%!"
) else (
set "fileName=!fileName:~%filePrefixLength%!"
)
)
if not "%fileSuffixLength%"=="" (
if "%fileSuffixLength%"=="-" (
set "fileName=!fileName:~0,-%fileSuffixLength:~0,-1%!"
) else (
set "fileName=!fileName:~0,-%fileSuffixLength%!"
)
)
if not "!fileName!!fileExtension!"=="%%~nxF" (
ren "%%F" "!fileName!!fileExtension!"
)
)
echo 文件和文件夹名称修改完成!
pause
三、另存为批处理程序
1.在新建的文本文档菜单栏点击【文件】---》【另存为】。
2.在弹出的【另存为】对话框选择批处理保存路径---》【文件名】处输入批处理名称(需要添加后缀名.bat)---》【保存类型】处选择所有文件---》【编码】处下拉选择ANSI---》点击【保存】。
四、运行批处理
1.双击运行批处理,输入需要去除的文件和文件夹后缀的长度。
2.运行前的文件和文件夹如下图所示。
3.运行后的效果,成功按给定长度分别去除了当前目录下文件夹和文件的前缀和后缀。