急急,不知道发在这里是否合适。
有一千多个文件夹,每个文件夹中有若干文件,现要将文件夹的名称批量加入到文件名中。 例如: 001文件夹中有a1.jpg,a2.jpg,a3.jpg
002文件夹中有a1.jpg,a2.jpg,a3.jpg
003文件夹中有a1.jpg,a2.jpg,a3.jpg
…… 要批量修改为:
001文件夹中 001-a1.jpg,001-a2.jpg,001-a3.jpg
002文件夹中 002-a1.jpg,002-a2.jpg,002-a3.jpg
003文件夹中 003-a1.jpg,003-a2.jpg,003-a3.jpg
……
在文件名中增加文件夹的名称。谁有办法?最好提供一个准确的批处理语句。
问题补充:如果全部都在一个文件夹里,可以使用ACDSEE批量命名,但现在有上千个文件夹,不可能针对每个文件夹里的文件进行处理。
有一千多个文件夹,每个文件夹中有若干文件,现要将文件夹的名称批量加入到文件名中。 例如: 001文件夹中有a1.jpg,a2.jpg,a3.jpg
002文件夹中有a1.jpg,a2.jpg,a3.jpg
003文件夹中有a1.jpg,a2.jpg,a3.jpg
…… 要批量修改为:
001文件夹中 001-a1.jpg,001-a2.jpg,001-a3.jpg
002文件夹中 002-a1.jpg,002-a2.jpg,002-a3.jpg
003文件夹中 003-a1.jpg,003-a2.jpg,003-a3.jpg
……
在文件名中增加文件夹的名称。谁有办法?最好提供一个准确的批处理语句。
问题补充:如果全部都在一个文件夹里,可以使用ACDSEE批量命名,但现在有上千个文件夹,不可能针对每个文件夹里的文件进行处理。
String []d = System.IO.Directory.GetDirectories(path);
foreach (String folder in d) {
System.IO.DirectoryInfo d1 = new System.IO.DirectoryInfo(folder);
foreach(String file in System.IO.Directory.GetFiles(folder)){
System.IO.FileInfo f = new System.IO.FileInfo(file);
String newName = String.Format("{0}\\{1}-{2}", folder,d1.Name,f.Name);
Response.Write(String.Format("请稍等,正在重命名{0}为{1}<hr/>",d1.Name,f.Name));
System.IO.File.Move(file, newName);
}
}
您上面这段代码复制到.bat文件中,运行不了。
呵呵,还是非常感谢您!
能弄得简单点吗?俺复制到.bat文件中,可以直接运行的哪种?
您上面这段代码复制到.bat文件中,运行不了。
呵呵,还是非常感谢您!
能弄得简单点吗?俺复制到.bat文件中,可以直接运行的哪种?
这个要求似乎有点无理。
如果做成一个小程序,可以放到网上共享了。
俺的邮箱:[email protected]
tempFolder=InputBox("请输入文件夹的路径","系统提示")Set fs=CreateObject("scripting.fileSystemObject")
Set folder=fs.GetFolder(tempFolder).subFolders
fileList=""
For Each f In folder
oldFolder=mid(f,InStrRev(f,"\")+1)
Set m=fs.getFolder(f).files
For Each myfile In m
myfile.name=oldFolder & "-" & myfile.name
fileList=fileList & "文件:"+f+"重命名为:" & myfile.name & Chr(13)
next
Next
MsgBox fileList
保存为vbs文件就可以了,测试通过。