windows 批量替换文件名中的字符(拖动文件到bat 批处理) - NOTEBOOK
windows 批量替换文件名中的字符(拖动文件到bat 批处理)
系统脚本/命令发布于 2025-02-19
摘要 : 拖动多个文件到bat文件上松开,输入被替换字符和新字符,即可。也可以用于删除文件名中的某些字符(只输入被替换字符)。
如果程序运行时突然自动关闭,很有可能是360搞的鬼:
https://do-op.work/notebook/?post=266
❱ bat 批处理代码
@echo off
setlocal EnableDelayedExpansion
if "%~1"=="" exit
set /p oldstr=请输入被替换字符:
set /p newstr=请输入新字符:
rem 切换到文件目录下,方便后续重命名操作
cd %~dp1
rem echo %~dp1
for %%i in (%*) do (
echo 正在处理 %%~nxi
set "name=%%~nxi"
set "name=!name:%oldstr%=%newstr%!"
echo !name!
rem 重命名
ren "%%~nxi" "!name!"
)
echo 操作结束
pause
❱ 新版本:增加一些错误检测
两个版本都能用,实际使用没什么区别。
@echo off
setlo@echo off
setlocal DisableDelayedExpansion
if "%~1"=="" exit /b 1
set /p oldstr=请输入被替换字符:
set /p newstr=请输入新字符:
echo 开始处理文件...
for %%i in (%*) do (
echo 正在处理: "%%~nxi"
set "filename=%%~nxi"
setlocal EnableDelayedExpansion
rem 执行替换操作
set "newname=!filename:%oldstr%=%newstr%!"
rem 检查新文件名是否为空
if "!newname!"=="" (
echo 错误: 替换后的文件名为空,跳过 "%%~nxi"
endlocal
continue
)
echo "%%~dpnxi"
rem 执行重命名,添加错误检查
ren "%%~dpnxi" "!newname!" 2>nul || (
echo 错误: 无法重命名 "%%~nxi"
)
endlocal
)
echo 操作结束
pause
❱ 也可以用于删除文件名中的字符
原文件列表:
new_world_0001.png
new_world_0002.png
new_world_0003.png
new_world_0004.png
new_world_0005.png
完成后的文件列表:
world_0001.png
world_0002.png
world_0003.png
world_0004.png
world_0005.png
只输入被替换字符,跳过新字符输入,则会变成删除。
❱ 如果程序运行时突然自动关闭
有可能是360搞的鬼:
360安全卫士导致程序运行错误❱ 相关文章
windows 批量替换文件名中的字符(拖动文件到bat 批处理)windows 批量给文件添加文件名前缀(拖动文件到 bat 批处理)windows 批量重命名、自动添加递增序号(拖动文件到 bat 批处理)windows下给文件重命名、添加递增序号(使用bat批处理删除文件名中特定字符串)