1. 批量去除当前文件夹下文件名前面的数字
1、在c盘建立一个文件夹,将下载的图片放置于该文件夹中。
2、鼠标左键点击,开始-》运行-》在对话框中输入字母“cmd”,进入dos模式
3、在dos模式输入命令行“cd c:\pic”然后回车,再输入命令行“dir /b>rename.xls",可将文件夹中的文件名在rename.xls文件中列出。
4、随后用xls打开c:\pic文件夹中的rename.xls,你会发现文件名以全部罗列在A列中(你也可以用鼠标来调整文件名的顺序),你可以在B1列中输入1.jpg作为第一个文件文件名。
5、鼠标选中B1单元格,并在B1列的右下方,使鼠标光标变为+号时,拖动使所有jpg文件的右侧B列中都有文件名。再将A8单元格中没有用的文件名删除。
6、鼠标选中C1单元格,并在编辑框中输入公式="ren "&A1&" "&B1。
7、继续用鼠标拖动C1单元格右下方的句柄,使剩余的C2-C7单元格填充。
8、然后,鼠标选中C列,鼠标右键复制。
9、在记事本中,粘贴刚才的命令行。
10、鼠标点击菜单“文件”——“另存为”,输入文件名ren.bat,要注意下图所示红圈中的路径及扩展名选项。
11、打开c盘pic文件夹,鼠标双击ren.bat这个批处理文件,即可将该文件夹下的jpg图片,按照刚才rename.xls中的顺序和文件名批量修改文件名。
2. Excel用公式函数提取文件名
1、Mid函数MID(text, start_num, num_chars) text 文本or 文本位置 start_num 启始数字,num_chars 结束数字
使用格式:MID(text,start_num,num_chars)
参数说明:text代表一个文本字符串;start_num表示指定的起始位置;num_chars表示要截取的数目。
应用举例:假定A47单元格中保存了“我喜欢天极网”的字符串,我们在C47单元格中输入公式:=MID(A47,4,3),确认后即显示出“天极网”的字符。
SEARCH函数
功能:用来返回指定的字符串在原始字符串中首次出现的位置 ,从左到右查找,忽略英文字母的大小写。
使用格式:SEARCH(find_text,within_text,start_num)
find_text:要查找的文本字符串
within_text:要在哪一个字符串查找
start_num:从within_text的第几个字符开始查找。
注意:在find_text中,可以使用通配符,例如:问号“?”和星号“*”。其中问号“?”代表任何一个字符,而星号“*”可代表任何字符串。如果要查找的字符串就是问号或星号,则必须在这两个符号前加上“~”符号。
2、返回当前工作表的名称:=MID(CELL("filename"),SEARCH("]",CELL("filename"))+1,LEN(CELL("filename"))-SEARCH("]",CELL("filename")))
C:\Users\DA\Desktop\[B8035M-A0.00.001.xlsx]Sheet1
3、仅插入当前文件名:=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
仅插入当前工作表明:
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
3. 如何批量提取图片文件名后加序号
其实这个简单,不用编程,
就是先提取文件名,然后灌入电子表,然后加编号
,然后做成每行是,命令,原名,新名的格式,然后输出,做在BAT文件,执行一下就好
4. 如何用提取文本文件内第一行作为该文件文件名【批处理】
答复已补充:
你如果确认第一行就是要的标题而不是空行或其它的话,那么应该就样:
@echo off
for %%a in ("*.txt") do (call:ChangName "%%a")
goto :eof
:ChangName
for /f "usebackq delims=" %%h in ("%1") do (ren "%1" "%%h.txt"&goto :eof)
goto:eof
问题有2:1.为什么你要用skip=2跳过头2行呢?
2.for是一个循环,你不停止它,它就会一直的运行下去,虽然理论上不会再对ren产生影响了,但是很耗资源的
特别要注意的是你用了usebackq参数,那么%1就得加上""了,这样FOR才认为它是一个文件,后面的也加上,以免路径有空格时发生错误。
如果你不确定第一行是不是空行的话可以参照一楼的兄弟判断的语句(稍做更改):
for ......(
setlocal enabledelayedexpansion
set "var=%%i"
if defined var (ren "%1" "%%i.txt" & goto :eof)
set var=)
发现问题了,楼主说在中途停止反而正确的多,问题在于第一句
for %%a in (*.txt) do (call:ChangName "%%~a")
当你更改文件名时,for会对更改后的文件再次遍历,所以先导出文件名再做更改的动作吧,第一段更改如下:
@echo off
dir /b *.txt>>%temp%\dirlist.txt
for /f "usebackq delims=" %%a in ("%temp%\dirlist.txt") do (call:ChangName "%%a")
goto :eof