[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]找一个能合并文件夹的第三方程序(借用VBS实现了)

本帖最后由 hnfeng 于 2023-3-31 08:40 编辑

有多个子文件夹,里面各有多层子文件夹及不同的文件(这些子文件夹其实是之前一个较大的文件夹拆分开的,为了刻光盘),文件夹结构保持没变。

现在想把这些文件夹合并在一起,恢复成以前那样的一个大文件夹(文件夹结构保持不变)。

首先想到了命令 Move,但是发现 move 命令 只能移动一个文件夹,移动第二个文件夹时,因为目标位置已有同名文件夹而拒接执行(貌似印象中在 XP 时添加 /Y 参数后是可以的),现在在 WIn7/10 却不行了。

如果使用 Ctel+X 剪切 然后在目录文件夹 Ctrl+V 粘贴, 系统提示是否合并文件夹,按确定,就能合并文件夹,而且速度极快,因为在同一个磁盘上。但是,好多啊……

然后想到了 robocopy (参数  /move) 和 FastCopy (参数  /cmd=move) ,发现这两个工具在移动文件夹功能上都是很弱智的: 先复制 再删除,速度慢啊

其他方法没找到。当然,在“第三方库”中搜到了 mvdir.exe ,这工具不成功(或者是我不会用,也没找到什么帮助)

所以在此向高手求助,能实现同硬盘快速合并文件夹的第三方程序,类似系统中 使用 Ctel+X 剪切 然后在目录文件夹 Ctrl+V 粘贴, 系统提示是否合并,按确定,就能合并文件夹的功能。

先谢谢了

回复 1# hnfeng


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

移动文件,然后删除目录

TOP

vbs
  1. s1 = "d:\1"    '要被移动的文件夹
  2. s2 = "d:\2"    '要移动到这个文件夹,且已有 d:\2\1 文件夹
  3. Set oShell = CreateObject("Shell.Application")
  4. Set oFolder = oShell.NameSpace(17).ParseName(s2).GetFolder
  5. Set oFolderItem = oShell.NameSpace(17).ParseName(s1)
  6. oFolder.MoveHere oFolderItem, 16
  7. MsgBox "ok"
复制代码
win7_x64_sp1测试,运行后自动覆盖已有的 d:\2\1 文件夹
d:\1 文件夹里面有5G的文件,瞬间移动完成,说明是移动,而不是先复制后删除

QQ 20147578

TOP

  1. s1 = "d:\1"    '要被移动的文件夹
  2. s2 = "d:\2"    '要移动到这个文件夹,且已有 d:\2\1 文件夹
  3. If Wsh.Arguments.Count > 0 Then s1 = Wsh.Arguments(0)
  4. If Wsh.Arguments.Count > 1 Then s2 = Wsh.Arguments(1)
  5. Set oShell = CreateObject("Shell.Application")
  6. Set oFolder = oShell.NameSpace(17).ParseName(s2).GetFolder
  7. Set oFolderItem = oShell.NameSpace(17).ParseName(s1)
  8. oFolder.MoveHere oFolderItem, 16
  9. Wsh.Echo s1
复制代码
支持命令行参数
第一个参数是要被移动的文件夹
第二个参数是要移动到的文件夹
参数必须是完整的路径

QQ 20147578

TOP

支持命令行参数
第一个参数是要被移动的文件夹
第二个参数是要移动到的文件夹
参数必须是完整的路径
czjt1234 发表于 2023-3-30 21:00



    多谢多谢!

不熟悉vbs,百度了一下bat给vbs传递参数,原来大侠已经做好了。经试验,完美!

再次感谢大侠相助!

TOP

返回列表