将所有文件从文件夹移动到它自己的子文件夹
问题描述:
我希望将文件夹结构中的所有文件移动一步,这是否可以在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/
这可能吗?批量?有任何想法吗?谢谢!
答
将这个批处理文件Folder1中,文件夹2,同一水平......
@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"
)
)
答
假设这是在Windows机器上。
,在命令提示符下面的命令将文件从subfolder1移动到Folder1中
C:\Folder1\subfolder1>move *.* ..\
更多使用帮助上移动命令,请使用以下命令
C:\Folder1\subfolder1>move /?
谢谢, 希望这会有所帮助!
答
你的问题并不完全清楚。其结果是subfolder1
/*here are files*/
的子文件夹?什么平台?
如果你只是在谈论移动文件,在Unix上,那么你可以做(在bash):
mv Folder1/*/* Folder1
或者,遍历每个文件夹,你可以这样做:
for f in *
do
mv "$f/*/* $f"
done
这将清空其内容的每个subfolderX
并将其向上移动一步。
如果您只想移动文件,请查看find
命令来过滤文件。
+0
对不起,如果我的问题是模糊的,我在一台Windows机器上,我试图做你在你的第二部分描述发布,批量/ cmd –
像这样的事情,是的!但如何做到超过1个文件夹,而不必输入确切的文件夹路径?谢谢! –
如果您启动/ w“Folder1”,并将每个子文件夹内的所有文件移动到“Folder1”根目录,则最终将移动更多的文件夹并继续移动,直到“Folder1”下的每个文件夹都清空。为了克服这个问题,开始时可以重命名所有文件夹并为标识符加前缀。然后在循环中,如果某个文件夹是其中一个初始文件夹,请将其放入CD中,然后将数据移动到一级。然后cd ..回到“Folder1”。并继续循环。您可以在网上找到批处理脚本教程。这里是wikibooks的一个这样的参考:https://en.wikibooks.org/wiki/Windows_Batch_Scripting –