主题:批量修改文件名字,请教!
net56789
[专家分:210] 发布于 2008-03-22 15:46:00
我有一批图片文件.需改一下文件名.如果一个一个改的话.太麻烦.
怎么样才能编程实现?
有一个思路,先得到文件名并且保存到一个TXT文件中,然后再读取.之后再改.
到这里我的思路就短路了.
cls
shell "dir/b >>a.txt"
sleep
回复列表 (共4个回复)
沙发
moz [专家分:37620] 发布于 2008-03-22 16:04:00
奇怪,按道理说QB下的DOS命令应该没有长文件名的,不知道是怎么搞的.
cls
shell "dir /b >> a.txt"
open "a.txt" for input as #1
do until eof(1)
line input #1,f1$
f1$=ltrim$(rtrim$(f1$))
ff=ff+1
f2$="ff"+ltrim$(ff)+".txt"
if f1$<>""then name f1$ as f2$
loop
close #1
system
板凳
我是大喊三 [专家分:3010] 发布于 2008-03-22 21:05:00
ACDSee有这功能啊
3 楼
net56789 [专家分:210] 发布于 2008-03-22 23:09:00
这里先谢谢MOZ了.看过你写程序.测试了你写的程序,又有问题了?
. 如果改的有图片.有TXT文件.有电影文件.就是说它们的后缀不一样.
那如何是好呀?期待中......
4 楼
moz [专家分:37620] 发布于 2008-03-23 00:48:00
我们做程序,要有参数观念.
程序实现的,是功能,是过程.
是对参数进行的操作.
参数: 是对象,是目标
程序: 是操作,是动作
参数: 原文件名,新文件名
程序: 把原文件名 , 改成新的文件名
实现这个功能的,是语句 name "旧文件名" as "新文件名"
那么,旧文件名哪里来?
在你的问题里,是从DIR方法获得,
获得之后,要改哪些文件? ---这个条件,需要你自己去定义,去限制,比如是A带头啊,比如8个字符啊,等等.
确定哪些文件后,怎样改? ---这个问题,仍然你自己决定,不改? 要改? 什么改什么? 用可行的方法,实现你所需要的功能.
比如说,A带头的.JPG文件名 要改成B带头,扩展名不变:
if ucase$(left$(F1$,1))="A" and right$(ucase$(F1$),4)=".JPG" then
F2$=F1$
mid$(F2$,1,1)="B"
name F1$ as F2$
endif
比如说,文件名改成8个字符,不足用A代替,扩展名不变:
F2$=left$(left$(F1$,instr(F1$+".",".")-1)+"AAAAAAA",8)+"."+mid$(F1$,instr(F1$+".",".")+1)
name......
我来回复