批处理怎样批量删除文件名前缀?

发布网友 发布时间:2022-02-23 00:25

我来回答

9个回答

懂视网 时间:2022-02-23 04:47

批量修改文件名的方法:

1.全选需要改名的文件。

2.在任意文件上点击鼠标右键。

3.选择重命名。

4.输入更改的名称即可批量修改文件名。

总结

1.全选需要改名的文件。

2.点击鼠标右键。

3.选择重命名。

4.输入更改的名称。

热心网友 时间:2022-02-23 01:55

批量去除文件名中相同的前缀:

第一步,在电脑上下载“优速文件批量重命名”软件后打开,然后点击左上角【添加文件】按钮,将需要重命名的文件全部添加到软件中,支持任何格式的文件。

第二步,添加好文件后在右边会出现设置的窗口,命名方式选择“替换”;在“查找内容”右边输入需要删除的前缀。这时候在右边可以预览到新文件名中已经没有了前缀。

第三步,确定没有问题之后就可以点击【开始重命名】按钮,启动软件的操作程序了,当提示“重命名成功”的弹窗,说明相同的前缀已经被删除了。

第四步,通过对比可以看出,文件名中的相同前缀“【文件】”全部被删除了。

热心网友 时间:2022-02-23 03:13

@echo off
title Renamer
echo 指定一个分隔符,将文件名中第一次出现该分隔符以后的内容修改为文件名
echo 有重复名字的文件或以分隔符结尾的文件名会导致重命名失败
echo 处理当前目录下文件,暂时不支持空格或0作为分隔符
set /p input=请指定一个分隔符:
if "%input%"=="" (echo 错误:错误的指定分隔符&pause&exit)
for %%n in (^/,^\,^:,^*,^<,^>,^|,0) do (if "%input%"=="%%n" (echo 错误:错误的指定分隔符&pause&exit))
if "%input%"=="*" (echo 错误:错误的指定分隔符&pause&exit)
if "%input%"=="?" (echo 错误:错误的指定分隔符&pause&exit)
if "%input%"==" " (echo 错误:错误的指定分隔符&pause&exit)
echo on
setlocal enabledelayedexpansion
for /f %%Z in ('dir/b') do (
set fon=%%Z
for /f "tokens=1,2* delims=%input%" %%a in ("!fon:%input%=%input%0%input%!") do (
set ffn=%%c
if not "!ffn:%input%0%input%=%input%!"=="%input%0%input%=%input%" ren "%%Z" "!ffn:%input%0%input%=%input%!")
)
@echo off
cls
echo 处理完成
pause

暂时懒得优化了,应该适用于大部分情况

追问谢谢提供这么多,多给你一些分,这个打开闪退唉,不知道什么情况

追答

啊啊啊对不起,还是我基础太不扎实了,处理^的话还会改第一个文件的名字,因为^是批处理里转义符,而且名字带空格的文件这个也处理不了,连续的几个分隔符也会被全吃掉

不过如果只是要处理你说那几个文件的话可以试试先运行这个

setlocal enabledelayedexpansion
for /f %%Z in ('dir/b') do (
set fon=%%Z
set ffn=!fon:^^=#!
ren "!fon!" "!ffn!"
)

会把目录下文件名里所有"^"改为"#"

===========以上可以全部忽略==========

真的是被我搞复杂化了,这样应该能普适了

@echo off
title Renamer
echo 指定一个分隔符,将文件名中第一次出现该分隔符以后的内容修改为文件名
echo 有重复名字的文件或只有一个分隔符且结尾的文件名会导致重命名失败
echo 处理当前目录下文件(输入多个字符会分别全部指定为分隔符)
echo 作为文件名开头的分隔符会被忽略(即#a#b.txt会被改名为b.txt)
echo 相邻的多个分隔符会被视为一个(即a###b.txt会被改名为b.txt)
set /p input=请指定一个分隔符:
if "%input%"=="" (echo 错误:未指定分隔符&pause&exit)
for %%n in (^/,^\,^:,^*,^<,^>,^|) do (echo %input% | find "%%n" >nul && (echo 错误:错误的指定分隔符"%%n"&pause&exit))
echo %input%|find "?">nul&&(echo 错误:错误的指定分隔符"?"&pause&exit)
echo %input%|find "*">nul&&(echo 错误:错误的指定分隔符"*"&pause&exit)
echo on
for /f "delims=" %%Z in ('dir/b') do (
for /f "tokens=1* delims=%input%" %%a in ("%%Z") do (
ren "%%Z" "%%b"
))
@echo off
cls
echo 处理完成
pause

热心网友 时间:2022-02-23 04:47

1、在要修改文件的文件夹内新建一个TXT文本 2、打开这个txt文本,输入下面的文字 ren *_C32kbps.mp3 *.mp3 3、保存,将后缀名改成“bat” 4、双击bat文件。

热心网友 时间:2022-02-23 06:39

恢复出厂设置。所有的垃圾都清掉。

热心网友 时间:2022-02-23 08:47

好压有个批量重命名功能,或者网上下一个批量重命名,很简单改的

热心网友 时间:2022-02-23 11:11

@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
rem 不清楚你的实际文件名,仅以问题中的样例为据
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /a-d/b^|find "^"') do (
    for /f "tokens=1* delims=^" %%i in ("%%a") do (
        echo;"%%a" --^> "%%j"
        ren "%%a" "%%j"
    )
)
echo;Any question +%@%%@% %n%
pause

热心网友 时间:2022-02-23 13:53

:::::::批量修改文件名.bat:::::::
@echo off
title 批量修改文件名
setlocal EnableDelayedExpansion
:: 启用延迟变量扩充

:GetPath
set zpath=%CD%
:: 对变量进行初始化,防止用户不输入而直接跳过。其中%CD%表示当前路径
set /p zpath=请输入目标文件所在的路径:
if %zpath:~0,1%%zpath:~-1%=="" set zpath=%zpath:~1,-1%
:: 检查变量 zpath 的第一个和最后一个字符是否为 "" ,是的话就去掉
if not exist "%zpath%" goto :GetPath
:: 如果 zpath 值的路径不存在,就得跳转回去,要求重新输入

:GetPrefix
set prefix=未命名
set /p prefix=请输入文件名前缀(不能包含以下字符\/:*?"<>|):
for /f "delims=\/:*?<>| tokens=2" %%i in ("z%prefix%z") do goto :GetPrefix
:: 这里对变量 perfix 进行检查,发现有非法符号便跳转到 :GetPrefix
:: 事实上,这里并没有对双引号 " 进行检测,因为双引号无法在此被转义为可用的分隔符
:: 即使是在这个程序里,不正确地使用双引号也会引起程序异常而退出。
:: 因此,想把它做的非常人性化并不是一件容易的事情

:GetExt
set ext=.*
set /p ext=请输入文件的扩展名(不输入则表示所有类型):
if not "%ext:~0,1%"=="." set ext=.%ext%
:: 检查变量 ext 的第一个是否为句点 . ,不是的话就加上
:: 建议这里对变量 ext 也检查一下,发现有除*外的非法符号便跳转到 :GetExt

set answer=N
echo.
echo 您试图将 %zpath%\ 里的所有 %ext% 类型的文件以 %prefix% 为前缀名进行批量改名,是否继续?
set /p answer=继续请输入 Y ,输入其它键放弃...
if "%answer%"=="Y" goto :ReadyToRename
if "%answer%"=="y" goto :ReadyToRename

echo 放弃文件改名,按任意键退出... & goto :PauseThenQuit

:ReadyToRename

set /a num=0
echo.

if "%ext%"==".*" (
for %%i in ("%zpath%\*%ext%") do (
set /a num+=1
ren "%%i" "%prefix%!num!%%~xi" || echo 文件 %%i 改名失败 && set /a num-=1
)
) else (
for %%i in ("%zpath%\*%ext%") do (
set /a num+=1
ren "%%i" "%prefix%!num!%ext%" || echo 文件 %%i 改名失败 && set /a num-=1
)
)

if %num%==0 echo %zpath%\ 里未发现任何文件。按任意键退出... & goto :PauseThenQuit

echo 文件改名完成,按任意键退出...

:PauseThenQuit
pause>nul
::::::::::::::::::::::::::::::::

热心网友 时间:2022-02-23 16:51

重命名

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com