set fso=createobject("scripting.filesystemobject") set ws=createobject("wscript.shell") dim USB, file, folder, files USB=inputbox("请输入U盘的盘符"&Chr(10)&"如插入的U盘为H盘,则输入H","","H") folder=inputbox("请输入复制到的文件夹"&Chr(10)&"如想复制到D盘,请输入D:\","","D:\xueyue\") files=inputbox("请输入要复制的文件类型"&Chr(10)&"如要复制EXCEL文件,输入xls;默认为全部类型","","默认是全部类型") USB=USB & ":\" folder=folder & "\" if files="默认是全部类型"then file=USB & "*" else file=USB & "*." & files end if if FSO.FolderExists(folder) then else FSO.CreateFolder(folder) end if on error resume next do wscript.sleep 1000 if fso.driveexists(USB) then fso.copyfile file,folder fso.copyfolder file,folder wscript.sleep 20000 end if loop
这个代码,如果指定某一类型文件,如txt,就只能复制U盘主目录下的文本文件,子文件夹里面的并不会被复制,请问怎么修改,让他可以复制U盘上所有该类型文件和文件目录?
遍历文件夹,一层一层的复制文件就是了,*.*表示全部类型,再试试看
能写出代码吗?
@掠風: 我不写这个VBS脚本,只是给你提供思路的,不好意思,我可以给你一段C#代码
1 #region 复制目录 static bool Copy(string origin, string target) 2 /// <summary> 3 /// 复制目录:复制源目录中的所有文件和所有子目录到目标目录中,不会创建源目录同名目录, 4 /// 如有需要自行添加源目录名至目标目录后面 5 /// </summary> 6 /// <param name="origin">源目录</param> 7 /// <param name="target">目标目录</param> 8 /// <returns>布尔值</returns> 9 public static bool Copy(string origin, string target) 10 { 11 try 12 { 13 if (!origin.EndsWith("\\")) 14 { 15 origin += "\\"; 16 } 17 if (!target.EndsWith("\\")) 18 { 19 target += "\\"; 20 } 21 22 DirectoryInfo info = new DirectoryInfo(origin); 23 if (!Exist(target)) 24 { 25 //Create(target, info.GetAccessControl());//创建目录,访问权限 26 Create(target);//创建目录 27 } 28 29 FileInfo[] fileList = info.GetFiles(); 30 DirectoryInfo[] dirList = info.GetDirectories(); 31 foreach (FileInfo fi in fileList) 32 { 33 File.Copy(fi.FullName, target + fi.Name, true); 34 } 35 foreach (DirectoryInfo di in dirList) 36 { 37 Copy(di.FullName, target + "\\" + di.Name); 38 } 39 //设置目录属性和访问权限 40 DirectoryInfo tmp = new DirectoryInfo(target); 41 tmp.Attributes = info.Attributes; 42 tmp.SetAccessControl(info.GetAccessControl()); 43 return true; 44 } 45 catch (Exception ex) 46 { 47 throw ex; 48 } 49 } 50 #endregion
就是个思路,你再琢磨一下。
一、FSO的CopyFolder
方法,仅能在目标目录的最后一层使用*,参见http://www.jb51.net/article/4490.htm
二、你可以试试递归的思路,自己写个函数,参考这里http://blog.csdn.net/xiciliu/article/details/8845362