A. 如何用BAT删除文件名中特定的几个字
说明(重要):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!")
B. 在bat中如何提取不包括文件后缀的文件名
可以用这个代码处理:
@echo off
set /p str1= 请输入要替换的文件(夹)名中的字符串(空格亦适用):
set /p str2= 请输入替换后的文件(夹)名中的字符串(删除请直接回车):
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit
把这个贴到文本里面,改名为:批量修改当前文件夹下文件(夹)名中的任意字符.bat。把这个bat放入需要修改的文件夹,点击运行后,在第一行输入:.jpg,第二行直接回车,即可。
这个代码适合文件夹名或者文件名中的任何相同字符的修改,删除。同时可以同步修改子文件夹及其里面的文件哟。
希望可以帮助到你。
C. bat提取文件目录下的文件名
@echooff
cd/d%~dp0
for/f"delims="%%iin('dir/b/a-d')do(echo%%~ni)
pause
因为不清楚你的具体操作目的,是提取一个文件的还是所有的,所以代码不一定对。
D. 如何删除文件名中某几个字用bat批处理命令
@echo off& setlocal enabledelayedexpansion
for /f "delims=" %%1 in ('dir /a /b') do (set wind=%%1
ren "%%~1" "!wind:文档版权=!")
E. 用BAT批处怎么去除某一目录下面的全部文件指定文件名的某个字符
@echo off
setlocal EnableDelayedExpansion
echo.&echo.&echo.&echo.&echo.
echo 说明:
echo.
echo 使用本bat文件可批量重命名本文件所在文件夹下的所有文件
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
set /p filename= 请输入新的文件名(直接以数字重命名请直接回车):
echo.&set /p houzhui= 请茄稿姿输入重命名的文件后缀类型(全敬颤部重命名请输入*):
for /f "delims=" %%i in ('dir /a-d/b *.%houzhui%') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "%filename%0!a!.%houzhui%") else ren "%%i" "%filename%!a!.%houzhui%"
set/a a+=1
)
)
echo.&echo.&echo.&echo.&echo 操作颤绝完成,按任意结束……
pause>nul
F. bat批量提取文件名并且去重
1、整理到一个文件夹:把所有要修改的文件放在一个文件夹中。如图中,我要将这些文件州纯的名字统一为1、2、3、4、5…等等
2、初步修改文件名:选中所有的文件,按F2 后再按 Enter。这里我输入一个1,然后所有文件名修改成一系液罩列,册埋咐如图
3、去空格:建立del空格.txt,另存为del空格.bat,双击去除空格。
G. 怎么用bat批量去掉文件名最后的“_”和“数字”
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为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"
dir /a-d/b/s *.jpg|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var line=WSH.StdIn.ReadLine();
var f=fso.GetFile(line)
var ext=fso.GetExtensionName(f.Path);
var oldbase=fso.GetBaseName(f.Path);
var newbase=oldbase.replace(/_\d+$/,'');
if(oldbase != newbase){WSH.echo(line+' --> '+newbase+(ext==''?'':'.'+ext));}
}
H. 如何用批处理bat,删除文本中包含的文件名
这样,把下面的批处理存为del_fn_in_txt.bat
@echooff
ifexist_%1del_%1
setfn=%1
setn=%~n1
for/f"delims="搜兄前%%iin(%fn%)do(
setln=%%i
echo!ln:%n%=!>>_%fn%
)
该批处理只有1个问题,就是您的文本中如果含有英文!,世清则处理后会被全部滤掉。
这段批处理运行时要这样:del_fn_in_txt.bat 七夕尘茄.txt
然后结果会存在:_七夕.txt中。
I. 批处理 去掉文件名前面15位
for /f "tokens=1* delims=_" %%i in ('dir/b *_*.ccp')do @ren "%%i_%%j" "%%j"
意思是把当前目录中带_的ccp文件改名,去掉第一个_及之前部分