![将子文件夹中的文件移动到多个文件夹下的主文件夹中](https://linux22.com/image/1419290/%E5%B0%86%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E7%9A%84%E4%B8%BB%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD.png)
我的照片导入程序将照片的备份放在标有“导入日期”的文件夹中。这些文件夹是作为所需位置文件夹的子文件夹创建的。我在多层文件夹下有许多这样的“导入”文件夹。例如:
C:\pictures\all photos 2013\01jan13\imported on 1 月 18 日。
有没有办法从图片文件夹向下扫描其每个子文件夹,并让程序将“导入”文件夹中的所有文件移动到其上级文件夹中?如果这让您感到困惑,请见谅!
谢谢你的帮助
答案1
这在 Windows 7 中有效;我不知道其他版本:
for /r C:\pictures %F in (*.*) do move %F %F\..\..
笔记:
for /r C:\pictures %F in (*.*) do …
对下的每个文件递归执行一次以下语句C:\pictures
,并将%F
设置为文件名。move
移动文件。- 这里有点棘手。你知道这
cd ..
会将你提升一个级别。好吧,事实证明你可以说\Users\rshonaker\Documents\fubar.doc\..
,它将引用\Users\rshonaker\Documents
(文件所在的目录),所以%F\..
是该文件%F
所在的目录。然后%F\..\..
是该目录的父级。
更多说明:
- 请谨慎使用。如果您在 中有任何文件
C:\pictures
,此操作将尝试将它们移动到C:\
。如果您在 中有任何文件C:\pictures\all photos 2013
,此操作将尝试将它们移动到C:\pictures
,等等。 - 如果您想将其放入脚本中,请将所有出现的 替换
%F
为%%F
。