有什么快捷的方法可以批量修改文件名?(别以为很容易)(50分)

  • 主题发起人 主题发起人 lianzj
  • 开始时间 开始时间
L

lianzj

Unregistered / Unconfirmed
GUEST, unregistred user!
在一目录下有一堆 100。*的文件(前续一样,后续不同),我要把它改成(前续是以前的后续,后续相同)
 
dos 下:ren 100.* *.100
 
to tianhf: 系统能接受吗?一看就知道不行。现在的高手真的不多!!
 
to tianhf: 系统能接受吗?一看就知道不行。现在的高手真的不多!!
为什么不行,你举个具体的例子。
 
这有何难? 得到扩展名,一个循环即可!
 
有一百个文件100.001 ,100.002, ......100.100 我要把它改成001.pdg,002.pdg,....100.pdg
ren 100.* *.100 __〉不是变成了100.100, 100.100.....吗?
 
用Filelist读取所有的文件,然后用ExtractFileExt获得文件后缀,再用循环改变文件名即可!
 
能不能快一点的方法,在操作系统能实现吗?我题目中不是提到一个快字吗,急阿!!
 
快!要多快?
那就用多线程呗!
 
to yb_unique:只能怪小弟肤浅,能否说明白一点。
 
编个小程序吧,Dos命令好象没有这么强大。
 
同意YB_unique的,在改前先查找有没有同名的文件。
 
能不能详细点!!
 
最简单的方法是写一个程序,功能非常简单

Program XchgName;
uses SysUtils; {if bp7,which unit include renamefile? dos?bios?forgot it}
Var EXT,Name,Full:String;
P:Integer;
begin

If ParamCount>0 then
Full:=ParamStr(1)
else
halt;
P:=pos('.',Full);
Name:=Copy(Full,1,P-1);
Ext:=Copy(Full,P+1,Length(Full)-P);
renamefile(Full,Ext+'.'+Name);
end.

OK,then type this command with command line:

for %1 in (100.*) do XchgName %1;
 
to wenyue:
假如这样企不是要执行一百多个xchgname程序,我里面有700多个文件!!
 
给分吧,这么类,给200吧.你的目的本来是快捷,其实我上面的就该OK了.

program xchgname;
uses sysutils;
var Rec:TSearchRec;
I:Integer;
procedure changename(Full:string);
Var EXT,Name:String;
P:Integer;
begin
P:=pos('.',Full);
Name:=Copy(Full,1,P-1);
Ext:=Copy(Full,P+1,Length(Full)-P);
renamefile(Full,Ext+'.'+Name);
end;

begin
I:=FindFirst('100.*',faAnyFile,Rec);
while I=0 do
begin
ChangeName(Rec.Name);
I:=findNext(Rec);
end;
FindClose(Rec);
end.

 
我那样写是因为在DOS下执行成功了(WIN2000),“一看就知道不行”?你应该试试再说话.
 
to tianhf:
对不起!我错怪你了!我是98,试过不行
 
哈哈﹐我前几個星期寫網頁﹐剛好寫了一個自己用﹐寫mail給我 williamgui@21cn.com
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
881
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
后退
顶部