我有一个文件夹(我们称之为 A),其中有很多子文件夹 B、C、D、E,而这些子文件夹又有子文件夹 B1、B2、B3、...C1、C2、C3...
如何使用 cmd 将所有子文件夹中的所有文件移动到“根”文件夹 A?
答案1
我原来的帖子忘记在移动命令中包含文件的扩展名。
%~ni
仅返回基本名称,您需要使用它%~nxi
来获取文件名和扩展名!希望你没有在我的账户上弄乱你的文件名!(
从命令提示符:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
如果您随后需要清理空文件夹:
for /d %i in (*) do @rd /s /q "%i"
现在,如果您遇到任何文件名冲突,您就得自己处理了。您可以将参数添加/y
到move
命令(在 之前"%i"
)以强制覆盖。如果您想要不同的东西,您需要另一个可以自动重命名所有内容的程序。
此外,如果您想在批处理文件中使用它,请将所有更改%
为%%
。
答案2
创建一个文件夹并将所有其他文件夹复制到其中,然后右键单击该文件夹并选择搜索. 在搜索框中输入*.*
。
这将列出所有文件和文件夹。选择根目录中所需的所有文件并剪切它们。导航到根目录并将所有文件粘贴到那里。
答案3
安装 Cygwin(或 Windows 的其他 Unix 环境)并运行以下命令:
cd A
find . -type f -exec mv {} . \;