将文件夹内容上移一级

将文件夹内容上移一级

我正在尝试将三级子目录结构中的所有文件向上移动一级。

A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\img\folder.jpg

我基本上想删除img子目录,但保留其上一级的内容。

这些是我收藏的 180 张莫扎特作品 CD 中的一张。共有 180 张 CD,17 个盒装,每个盒装约 11 张 CD。每张图片都按照以下精确结构放置:

A:\mozartBilder\Box*number1-17\CD*1-11\img\folder.jpg

我想要实现的是将其folder.jpg向上移动一个目录。

因此从

A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\img\folder.jpg

A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\folder.jpg

我在 SuperUser 上搜索过,发现有人有类似的问题,但是提供的解决方案都不适用于我。

对于此代码:

A:\mozartBilder>for /r %i in ("img\folder.jpg") do move %i %~pi..

我收到此错误:

A:\mozartBilder>move A:\mozartBilder\Box 02 - Serenades, Dances, Marches\CD03\"img\folder.jpg" \mozartBilder\Box 02 - Serenades, Dances, Marches\CD03\"img\.. The syntax of the command is incorrect.

答案1

要将 folder.jpg 上移一级但保留 \img 文件夹:

gci A:\mozartBilder folder.jpg -recurse |
   move-item -Destination {$_.Directory.Parent.FullName}

要将文件上移一级并删除 \img 文件夹(假设它是空的):

gci A:\mozartBilder folder.jpg -recurse |
   move-item -Destination {$_.Directory.Parent.FullName}
gci A:\mozartBilder -recurse |
   ?{$_.PSChildName -match 'img'} | remove-item

尝试在单个 foreach 对象中组合 move-item 和 remove-item 会导致错误消息,即使文件已被移动且目录已被删除,因此我采用了上述方法。

答案2

一种使用 GUI 的简便方法。

下载双指挥官;它是一个双窗格文件管理器,免费,甚至可用于商业用途,并且跨平台。您很快就会发现您再也不会访问命令行了。

双窗格非常适合移动/复制/存档/解压/比较操作,更不用说 FTP、文件/目录比较、多文件/目录重命名、按名称/内容搜索文件(使用通配符/正则表达式)等。

您有两个选择:

  • A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\img\在左窗格和A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\右窗格中 导航至
    • 使用键盘plus键选择源目录中的所有文件,或者按 Ctrl-A
    • 按 F6 移动所有文件并enter选择目标

或者

  • A:\mozartBilder\Box 03 - Divertimenti, Serenades\CD02\img\在左侧窗格中 导航至
    • 使用键盘plus键选择源目录中的所有文件,或者按 Ctrl-A
    • 按 F6 移动所有文件并输入..(父目录)作为目标。

事实就是如此 :-)

因为没有图像的答案是不完整的......

在此处输入图片描述

请让我们知道它是如何运作的(并仔细查看 DC 的所有功能;我只是触及了上面的表面)

相关内容