回 帖 发 新 帖 刷新版面

主题:批量修改文件名字,请教!

我有一批图片文件.需改一下文件名.如果一个一个改的话.太麻烦.
怎么样才能编程实现?

有一个思路,先得到文件名并且保存到一个TXT文件中,然后再读取.之后再改.

到这里我的思路就短路了. 



cls

shell "dir/b >>a.txt"

sleep

回复列表 (共4个回复)

沙发

奇怪,按道理说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

板凳

ACDSee有这功能啊

3 楼


这里先谢谢MOZ了.看过你写程序.测试了你写的程序,又有问题了?

. 如果改的有图片.有TXT文件.有电影文件.就是说它们的后缀不一样.

那如何是好呀?期待中...... 

4 楼

我们做程序,要有参数观念.
程序实现的,是功能,是过程.
是对参数进行的操作.

参数: 是对象,是目标
程序: 是操作,是动作

参数: 原文件名,新文件名
程序: 把原文件名 , 改成新的文件名
实现这个功能的,是语句 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......

我来回复

您尚未登录,请登录后再回复。点此登录或注册