使用命令提示符将文件从多个文件夹全部移到父目录


8

我在多个文件夹中有多个.rar文件,如下所示:

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

我想将所有.rar文件移动到父目录“ C:\ Docs”。我有3个以上的文件夹,因此我想制作一个批处理文件或其他东西。执行此操作的命令是什么?
谢谢


我搜索了类似的问题,发现此答案很有用。
lalthomas

Answers:


15

我刚刚制作了一个命令行应用程序,可以精确地执行此操作(加上显示了一些统计信息),并搜索是否有人在尝试执行此操作,因此我可以共享它,并避免有人找出来。

写作很有趣。需要.NET 3.5,可从命令行运行,使用-h或不使用参数进行调用。

MoveFilesUpFromSubfolders
(源代码)

反馈加号!:)

哦,还有它的外观截图:

                               


3
+1编写解决某人问题的程序。那是承诺!
叶立昂

1
@ Li-aungYip非常感谢您的夸奖!另外,由于情况的缘故,我在制作该硬盘的时候不再有用来编码的硬盘了(丢失了很多东西),所以我很高兴在这里看到它并立即下载( Mediafire可以存储很长的时间而很少下载,因此我很荣幸,我很幸运没有将其存储在Megaupload中!)。因此,如果您以正确的眼光看待,您付出的越多,您得到的就越多:)
Camilo Martin

做得好!+1和50代表 我知道这是4.5年的历史,但这对我来说非常有用,因为我下载了90多个文件夹中的90多个文件。这有助于我将所有文件放在其父文件夹中。

我唯一的批评是,当我尝试使用它时,关于文件夹问题的错误不断出现,但没有说明原因。仅通过使用-t命令,我才能确定文件夹为什么存在问题(因为该文件夹以250多个字符命名)。通过突出显示所有文件夹并重命名其中一个文件夹,可以轻松地避免此情况(然后其余文件夹将附加一个数字)。

@ edmastermind29我很高兴得知这样的旧代码已被某人使用。信不信由你,源代码档案库因为被自动标记为侵犯版权而被mediafire淘汰(这很荒谬,考虑到那里没有视频或音频,而只有文字),我对此一无所知。如果有什么用,在这一点上,我将编写一个bash单行代码来处理这样的问题,例如mv dir/sub/* dir; rmdir dir/sub循环。
卡米洛·马丁

7

试试看:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

您能再解释一下吗?
尼克,2010年

@Nick:对于中的所有文件夹docs,输入文件夹。将所有文件从当前文件夹移动到父文件夹。返回上级文件夹。
Hello71 2010年

pushdpopd是不是真的有必要。cd会很好。
Hello71 2010年

如Hello71所述。此外,也可以单行执行:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd 2010年

1
注意 上面的原始文件或单行代码都无法正确处理重复的文件名。
BillP3rd

5

好吧,您问题的答案非常简单。它不是脚本,但可以。

我以为您正在运行Windows。

  • 将您自己放置在C:\ Docs目录中
  • 按F3键(搜索)
  • 搜索* .rar
  • 按Crtl + A
  • 按Ctrl + X
  • 关闭搜索窗口,然后再次在资源管理器中转到C:\ Dosc
  • 通过按CTRL + V粘贴剪切的文件。

+1可以实现美观而简单的解决方法,而无需任何第三方或脚本。
Syakur Ra​​hman 2014年

+ 1最好最快的方法A +++
Sickest

3

吸力在这个问题上为我工作。

Suction是一款免费的便携式应用程序,可立即帮助您整理混乱的文件夹。

抽吸通过合并父目录来起作用。例如,如果您的图像目录中充满了不必要的文件夹,请将该文件夹拖到Suction界面中,它将删除该文件夹,而只剩下这些文件。这对于下载大量内容的人也很有用。


0

将文件从子目录复制或移动到单个目录的示例

对于('dir“ C:\ Temp \ Epub * .epub” / s / b')中的/ f“ tokens = *”%a,请复制/ y“%a” C:\ Temp \ epub。

对于('dir“ C:\ Temp \ Epub * .epub” / s / b')中的/ f“ tokens = *”%a,请移动/ y“%a” C:\ Temp \ epub

“ tokens = *是捕获具有特殊字符的路径


-1

这应该工作:

move C:\Docs\*\* C:\Docs

2
我收到错误消息:文件名,目录名或卷标签语法不正确。
尼克,2010年

**无效
尼克,2010年

您需要确保将“ \”放入其中,并且不会被文本编辑器转义。
Hello71 2010年

从CMD提示符(在Windows 7中)发出此命令会生成Nick指出的错误。
BillP3rd

这行不通。*不适用于文件夹。要推出像Total Commander这样的第三方程序。
surfasb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.