批处理将所有文件从文件夹移动到其自己的子文件夹

时间:2015-12-13 12:45:18

标签: batch-file

我希望将文件夹结构中的所有文件向上移动一步,这是否可以在Windows环境中使用批处理?

示例:

我有4个文件夹

Folder1/subfolder1/*here are files*
Folder2/subfolder2/*here are files*
Folder3/subfolder3/*here are files*
Folder4/subfolder4/*here are files*

结果将是:

Folder1/*here are files*/subfolder1/
Folder2/*here are files*/subfolder2/
Folder3/*here are files*/subfolder3/
Folder4/*here are files*/subfolder4/

这可能吗?批量?有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:0)

假设这是在Windows机器上。

在命令提示符下,以下命令会将文件从子文件夹1 移动到 Folder1

C:\Folder1\subfolder1>move *.* ..\

有关移动命令的更多用法帮助,请使用以下命令...

C:\Folder1\subfolder1>move /?

谢谢, 希望这有帮助!

答案 1 :(得分:0)

你的问题并不完全清楚。在结果中,subfolder1/*here are files*/的子文件夹吗?什么平台?

如果您只是在谈论移动文件,在Unix上,那么您可以(在bash中):

mv Folder1/*/* Folder1

或者,要迭代每个文件夹,您可以这样做:

for f in *
do
  mv "$f/*/* $f"
done

这将清空其内容的每个subfolderX并向上移动一步。

如果您只想移动文件,请查看find命令以过滤文件。

答案 2 :(得分:0)

将此批处理文件放在Folder1,Folder2,...的相同级别

@echo off

rem For each folder i.e. "Folder1", "Folder2", ...
for /D %%a in (*) do (

   rem For each subfolder in this folder i.e. "subfolder1"
   for /D %%b in ("%%a\*") do (

      rem Move the files
      move "%%b\*.*" "%%a"

   )
)