当前文件夹内删除指定字符前所有内容(含字符本身)?
发布网友
发布时间:2022-04-25 05:20
我来回答
共5个回答
热心网友
时间:2023-10-29 13:05
在文件所在的文件夹内新建一个后缀为bat的文件,并用记事本打开输入以下代码:
@echo off
setlocal enabledelayedexpansion
set "str= "
for /f "delims=" %%i in ('dir /b *-*') do (
set "var=%%i"
for /f "tokens=2* delims=-" %%j in ("!var:%str%=!") do ren "%%i" %%j )
代码如下图所示,点击运行即可一键改名:
批处理代码文件
热心网友
时间:2023-10-29 13:05
用通配符,?代表一个字符,*代表所有字符,
比如用*-*.mp4,这也不好弄了,
其实,你可以先list *.mp4 >name.txt
然后用电子表打开,这时候可以把它分解成几个字列,比如用-做分割,
要做一个分割的就是不变的,一个是分割的,然后分割的要把要删除的直接删除,然后合并,再加一列,就是rename,
然后再输出到txt文件,形成 rename 文件-文件.mp4 文件.mp4
有很多行,改名为bat,运行一下就可以了
热心网友
时间:2023-10-29 13:06
有空格的时候 加引号 可以包含空格
不过你这前后都不确定 可以借助exl 或者txt tree出名称列表搞到手, 然后替换掉空格 然后再用for/f 来把第一行的左边 文件 命名到右边文件
热心网友
时间:2023-10-29 13:06
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
/*&cls
@echo off
rem 删除多个文件名称中的指定字符及其前面的所有字符内容
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
dir /a-d-h/b|find /i /v "%~nx0"|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine();
var f=fso.GetFile(it);
var newname=f.Name.replace(/^.*?- */,'');
if(newname != f.Name){
WSH.StdErr.WriteLine(it+' --> '+newname);
}
}
热心网友
时间:2023-10-29 13:07
当前文件夹内删