我有数百个名称为
的文件MUZ-123456-KH.txt
我想用替换 PREFIX 和 SUFFIX
替换此类型的文件名muz123456.txt
表示: 前缀 MUZ - 将替换为 muz
后缀 -KH 替换为无
我有一个很多次的工具。任何人都可以帮助我吗?
这是日常工作,我累了
答案 0 :(得分:0)
您可以使用文件模式匹配(使用DIR
命令)和文本替换(使用SET
命令)的组合来执行此操作。
我添加了评论来解释每个步骤的作用。
@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
REM Process all files matching the pattern.
FOR /F "usebackq tokens=* delims=" %%A IN (`DIR /B /S "C:\Path\To\Files\MUZ-*-KH.txt"`) DO (
ECHO Processing: %%~A
REM Get just the file name.
SET NewName=%%~nxA
REM Replace prefix.
SET NewName=!NewName:MUZ-=muz!
REM Replace suffix.
SET NewName=!NewName:-KH=!
ECHO Renaming to: !NewName!
REM Rename the file.
RENAME "%%~fnxA" "!NewName!"
ECHO.
)
ENDLOCAL
答案 1 :(得分:0)
假设文件遵循以下格式:
prefix dash datawithnodash dash suffix . txt
@echo off
setlocal enableextensions disabledelayedexpansion
set "prefix=MUZ"
set "suffix=KH"
set "extension=txt"
pushd "c:\where\theFilesAre" && (
for /f "tokens=1,2 delims=-" %%a in ('
dir /b /a-d /l "%prefix%-*-%suffix%.%extension%"
') do ren "%prefix%-%%b-%suffix%.%extension%" "%%a%%b.%extension%"
popd
)
这使用短划线作为分隔符来分隔文件名的元素,仅检索前缀和有效数据,丢弃其余部分。使用dir
命令检索文件列表,以小写形式请求它以调整前缀大小写。
答案 2 :(得分:0)
如果您理解正则表达式,那么使用JREN.BAT - a hybrid JScript/batch utility that renames files via regular expression search and replace.非常简单.JREN.BAT是从XP开始在任何Windows机器上本机运行的纯脚本。
正则表达式允许指定非常精确的重命名规则。
下面的一个衬垫寻找:
它保留前缀和数字以及扩展名,使整个小写
jren "^([^-]+)-(\d+)-[^-]+(\.txt)$" "lc($1+$2+$3)" /i /j