1. 首页 > 智能数码 >

批量删除文件名一部分 批量删除文件部分名称

按住鼠标左键不放,框选要删除的文件,然后按键盘上的delete键即可。

批量删除文件名一部分 批量删除文件部分名称批量删除文件名一部分 批量删除文件部分名称


如果没有规律性的话,电脑不可能智能到那地步的,只能人工删除。

简单

把这些文件放在一个目录下

运行cmd

转到目录.

ren

**.

12345 @echo offSetlocal Enabledelayedexpansionset "str=-mini"for /f "delims=" %%i in ('dir /b *.png') do (set "var=%%i" & ren "%%i" "!var:%str%=!")

批处理:如何批量删除文件夹名字中的部分字符?

for

/f

"tokens=1-2

delims=

"%%a

in

('dir/b

文件*.*')

do

ren

"%%a

%%b"

%%b

保存为批处理,放到文件夹所在目录执行

不清楚你的实际文件/情况,仅以问题中的样例/说明为据

复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行/*&cls

@echo off

rem 删除文件名中部分指定长度/位数的特征字符串

mode con lines=3000

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

for /f "tokens=1* delims=|" %%a in ('dir /a-d/b^|cscript -nologo -e:jscript "%~f0"') do (

if "%%~nxa" neq "%~nx0" (

echo;"%%a" --^> "%%b"

ren "%%a" "%%b"

))

:end

echo;%#% +%$%%$%/%@% %z%

pause

exit

*/

var fso=new ActiveXObject('Scripting.FileSystemObject');

while(!WSH.StdIn.AtEndOfStream){

var line=WSH.StdIn.ReadLine();

var file=fso.GetFile(line);

//17位由字母数字组成的特征字符串

var newname=file.Name.replace(/[a-z\d]{17}/i,'').replace(/[-_]{2,}/g,'_');

if(newname !=file.Name){

WSH.echo(line+'|'+newname);

}}

这串随机的字符串在所有文件名中都是规定在第三段吗?(以_为分隔符)

如果是,那么代码就好写多了。

我先以这种固定在第三段的形式写个代码吧!如果有问题,请追问。

@echo off & title 去除第三段字符串 By 依梦琴瑶

::设置要处理的文件格式

set Ext=*.txt

for %%a in (%Ext%) do (

for /f "tokens=1,2,4* delims=_" %%b in ("%%~na") do (

echo "%%~nxa" --^>^> "%%~b_%%~c_%%~d%%~xa"

ren "%%~a" "%%~b_%%~c_%%~d%%~xa"

))

pause

::友情代码,非主代码,愿意的话可以执行一下

@echo off & title 友情代码 By 依梦琴瑶

call :Donate

exit

:Donate

set "S0=fPdv"

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

方法/步骤

下载安装拖把更名器,打开

请点击输入图片描述

打开你要批量更名的文件(文件→添加文件)

请点击输入图片描述

请点击输入图片描述

文件名中都有(

点击“替换”按钮,在把字后面输入(

请点击输入图片描述

请点击输入图片描述

替换好后点击左上方的“应用”按钮,快捷键是Ctrl+E,这下你返回你的元文件夹看看,大功告成!

请点击输入图片描述

说明(重要):set str=- airvideo就是设置你要替换的字符。

如果字符(- airvideo)前面有空格,就这样(set str= - airvideo)

也就是说一个空格也是按一个字符处理的。

@echo off

set fol=G:\AirVideo提取处\

set str=- airvideo

setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /s /b "%fol%*.*"') do (set a=%%~fi& set b=%%~ni& set c=%%~xi

set b=!b:%str%=!

ren "!a!" "!b!!c!")

文件名中有空格,没有影响

“- airvideo”前面是部分文件名吗?必须完整保留一模一样吗?如果“是”采用方法一,“否”采用方法二。

方法一:

你复制下面完整的这一行:

dir "G:\AirVideo提取处" >c:\tmp.txt

打开“命令提示符”,右击黑色的命令提示符窗口,粘贴

然后把c:\tmp.txt发给我,我看看文件名的样子编好BAT发给你。 我的邮箱:方法二:

用我的电脑打开“G:\AirVideo提取处”文件夹,

然后按Ctrl+A全选,

按F2键,

输入:XXX.M4V

回车。文件名就自动重命名为:

XXX (1).M4V

XXX (2).M4V

XXX (3).M4V

XXX (4).M4V

……

Dim fso

Set fso = CreateObject("scripting.filesystemobject")

Dim target,tmp

target=choosefolder()

If Len(target)<>0 Then

Set fs=fso.GetFolder(target).Files

For Each f In fs

tmp=Replace(f.name," - airvideo","")

f.Name=tmp

Next

End If

set fso=nothing

Function choosefolder()

Dim aShell

set aShell = CreateObject("Shell.application")

Set folder=aShell.BrowseForFolder(0,"选择目标文件夹",0)

If Not folder Is nothing then 'MsgBox folder.self.path

choosefolder=folder.self.path

Else

choosefolder=""

End If

End Function

'存成vbs,有选择文件夹的对话框。

@echo off&setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /s "G:\AirVideo提取处\*.*"') do (for /f "usebackq delims=" %%j in ("%%~fi") do (set a=%%j

set a=!a:- airvideo=!

echo !a! >>%%~dpinew%%~nxi

))

::会把修改的文件都放在“new原文件名”中。

::如果文件较多,运行的时间会很长。

@echo off& setlocal enabledelayedexpansion

for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1

ren "%%~1" "!wind:文档=!")

@echo off& setlocal enabledelayedexpansion

for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1

ren "%%~1" "!wind:文档=!")

@echo off

for /f "delims=" %%a in ('dir /a /b') do (

for /f "tokens=1,2 delims=文档" %%b in ("%%a") do (

ren "%%a" "%%b%%c"

))

rem 和你的几十个文件放在一起

用以下代码做一个bat批处理文件,文件名任意,可以是:

代码如下:

@echo off

做好后把这个批处理放到你要修改文件名的文件夹内

点击运行运行:第一行输入“馨香 ”,你的情况第二行直接回车:

然后就OK了

如果是要替换成什么字符,第二行打入即可。

PS:这个也适用于文件夹名的修改哟。且可以同时修改文件名以及所有子文件夹名,包括有所子文件夹内的文件名,同步一次修改完。

希望对你有用

帮你粘贴下-———-----------------------我是分割线--------------------------------------如何批处理重命名文件

生活中遇到的问题要想办法解决,才能转化为经验。

我们经常会遇到要把一批没有规律的文件命名成有规律的文件名,或者将一批有规律的文件名重命名成另一批有规律的文件名,用批处理会帮你节省很多时间。今天我遇到的情况是把一批文件夹需要命名成我想要的文件名,这些一一对应的文件名已经事先获得。

在网上找了一些方法,结合自己的实践我把我的学习过程介绍下。

在我的D:\Program Files\download\data文件夹下有229个用纯数字命名的文件夹,这些文件夹名称需要被重命名为新的文件夹名称,新旧文件夹名称的对应关系已经知道。

1: 点击Windows左下角的“开始”菜单,选择“运行”,输入 cmd ,回车进入命令行。

2: 用 cd 命令进入到你想批量修改文件名的文件夹目录。比如这里,我想要进入D盘中的D:\Program Files\download\data文件夹。

输入: chdir /D D:\Program Files\download\data //用help cd可以查看cd指令的相应帮助信息

3: 输入 dir /b 可以看见当前文件夹目录下面全部文件夹的列表。

输入: dir /b > data.xls 将的列表输出到data.xls电子表格。 //用excel是为了方便将新旧文件夹名称之间的一一对应关系进行处理,后面会了解

4: 有趣的东西现在才开始。打开Excel或Google Docs电子表格,你会在第一列中看到刚才文件列表。

5: 在旁边空白的列中,添加一个相应的function函数公式——例如,使用SUBSTITUTE可以来修改文件名中指定的字符,使用 CONCATENATE() 和 DATE() 可以在文件名中加上日期,等等。

我的情况是第一列A是我的文件列表,我从另外一个excel文件复制B、C、D列信息到data.xls,我的目标是将A列的文件名称命名成B_CD(字符串相加)形式,(加入A1是12345,B1是001,C1是12345,D1是浙江大学,重命名后的文件名称应为001_12345浙江大学)在空白列E的第一行中输入:=CONCATENATE(B1, "_", C1,D1)

6: 选中E1单元格右下角的+加号,向下拖动,这样我们的公式将被复制应用到所有行。这么做的目的是为了获得我想要的文件名称。

现在,你原来的文件名在A列,你期望替换成的文件名在E列——我们现在要将它们转化为DOS中的rename命令。在新的空白列比如F列,输入Excel公式:

=CONCATENATE("ren ",A1, " ", E1) //ren是dos中的重命名指令,A1是原文件名称,E1是目标文件名称

点击函数的对号,确认输入无误后,拖到右下角的+加号,应用到所有行。

7: 选中F列,点击“复制”,在D:\Program Files\download\data文件夹目录下,创建一个rename.bat文件,将复制的内容粘贴进去。可以看到rename这个批处理文件中的第一行内容是“ren 12345 001_12345浙江大学”,后面同样是这种格式。

8: D:\Program Files\download\data下输入命令rename.bat,然后回车,会发现目录下的文件名已经按照你期望的方式被修改了。但是还有一部分文件夹名称没有改变,重新查看批处理文件中的内容,发现一些新文件夹名称中含有空格或者其他文件夹命名中的非法字符,把空格以及非法字符去掉后重新运行就成功了。

一个使用起来超简单的软件就能完成你想要的改名:拖把更名器 一个简单易用的文件更名工具,功能主要有:基于资源管理器外壳扩展,支持通配符更名,支持移除 ID3v1 ID3v2 标签,支持序号更名,支持从文本文件调入文本更名,结合资源管理器的拖放操作。结合资源管理器右键菜单,支持 MP3/RM/RMVB/WMA/APE/OGG/WMV/ASF 标签更名,文件名、标签内码转换、繁简转换、汉字转拼音。支持序号、调用外部文本文件更名、网页文件标题提取更名、正则表达式、元变量、自动预览、撤消等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息