任务:
Folder1>Subfolder1>Stuff1
Folder1>Subfolder2>Stuff2
...
将子文件夹的内容移动到父文件夹(Stuff1 / 2是其中包含其他文件或子目录的子目录)
Folder1>Subfolder1
Folder1>Subfolder2
Folder1>Stuff1
Folder1>Stuff2
我试过了:
for /d %f in (.\*) do (
pushd %f
move .\%f\* ..
popd
)
但这是行不通的。
您不能move * ..
对目录执行操作。move
移动目录的唯一方法是指定目录名称本身(不允许使用通配符)。因此,您需要第二个循环(在第一个循环中)以循环浏览目录:
@echo off
for /d %%d in ("*") do (
for /d %%e in ("%%d\*") do (
move "%%e" .
)
)
不需要,pushd
因为您可以将其从父级移动到父级。
注意:此文件用于批处理文件,因此将%d
的%
两倍于%%d
和%%e
。如果直接从提示符下运行它,则只需一个%
。
编辑:
如果第一级子文件夹(Subfolder1和Subfolder2)也包含文件(除了文件夹Stuff1和Stuff2),则可以向外部添加另一个移动。
@echo off
for /d %%d in ("*") do (
for /d %%e in ("%%d\*") do (
move "%%e" .
)
move "%%d\*" .
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句