Answers:
我的原始帖子忽略了在move命令中包含文件扩展名。
%~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"
)以强制覆盖。如果您需要其他功能,则需要另一个程序,该程序可以自动为您重命名所有内容。
另外,如果要在批处理文件中使用它,请将所有更改%
为%%
。
FOR /r
-太好了!
创建一个文件夹并将所有其他文件夹复制到其中,然后右键单击该文件夹并选择“ 搜索”。在搜索框中输入*.*
。
这将列出所有文件和文件夹。在根目录中选择所需的所有文件,然后剪切它们。导航到您的根目录,然后将所有文件粘贴到该目录中。
安装Cygwin(或Windows的另一个Unix环境)并运行以下命令:
cd A
find . -type f -exec mv {} . \;
mv
和find
版本,您可能需要使用find . -type f -exec mv -t . {} \;
。
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 c
并touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/ccc
准备。
find . -type f -exec mv {} . ;
而且看起来还可以。