【问题标题】:Script to rename files to parent folder, move renamed file and delete empty folder脚本将文件重命名为父文件夹,移动重命名的文件并删除空文件夹
【发布时间】:2013-03-13 03:22:35
【问题描述】:

想知道这里是否有人可以帮助我。我使用的是 Windows 7,并且在单个文件夹中有一系列电影和电视节目,我希望将其重命名为文件夹名称。例如:

../Media Files/Example Movie (2013)/EM2013.avi

到:

../Media Files/Example Movie (2013)/Example Movie (2013).avi

然后,我希望将新命名的文件移动到 Media Files 文件夹,并删除(当时为空的)文件夹。所以:

..Media Files/Example Movie (2013).avi

我已经搜索了一个解决方案,但只找到了可以做其中一个或另一个的脚本 (How to rename a file according his folder name via batch script) - 我正在寻找一个可以一次性完成所有三件事的脚本,因为我将添加电影和电视节目定期到Media Files 文件夹。提前感谢任何可以提供帮助的人,如果之前有人问过类似的问题,我们深表歉意。

【问题讨论】:

  • 您说您找到了部分解决方案,为什么不尝试将它们组合在一个代码中?如果您有任何问题,请返回并发布您的代码,我们很乐意为您提供帮助!
  • 嗨 - 很抱歉会尝试这样做,但我对此完全陌生 - 我的编程技能延伸到 HTML :|事实上,当我发现它可以在脚本中完成时,我最初是在谷歌搜索一个程序来执行我的要求!

标签: batch-file batch-processing batch-rename


【解决方案1】:
@ECHO OFF
SETLOCAL
SET target=.\media files
FOR /f "delims=" %%t IN (
 ' dir /b /ad "%target%" ' ) DO (
 FOR /f "delims=" %%f IN (
  ' dir /b /a-d "%target%\%%t\*.*" ' ) DO (
  ECHO MOVE "%target%\%%t\%%f" "%target%\%%t%%~xf"
  ECHO RD "%target%\%%t"
  )
)
PAUSE

应该显示所需的操作。验证后去掉ECHO关键字即可执行

【讨论】:

  • 感谢这位伙伴 - 并为成为一个完整的 n00b 道歉 - 但我没有使用脚本的经验 - 尝试将其复制并粘贴到记事本文件中并保存为 code.bat 但当我运行它时一个黑色窗口弹出了一毫秒,其中包含“找不到文件”。我不太确定您在验证执行后删除 ECHO 关键字是什么意思...尝试谷歌搜索以了解 Echo 功能但不能正确理解它......再次抱歉成为一个愚蠢的n00b!
  • n00bitude 没问题 - 我们都必须从某个地方开始。我建议您从Start>(All) Programs>Accessories>Command Prompt 开始,右键单击并选择Send to>Desktop,这将在您的桌面上创建一个命令提示符(通常重命名为DOS)的快捷方式。然后,您可以使用快捷方式属性(右键单击并选择属性)来建立您想要的任何颜色背景和文本 - 以及窗口的行数和宽度以及字体和字体大小。就个人而言,我在黑色背景上使用 18 点 Lucida 和黄色文本。您的偏好可能会有所不同。
  • 关键是,完成此操作后,您可以运行"DOS SESSION" - DOS 模拟器,就像我们三十年前一样。当批处理文件完成时,您会再次收到提示,直到您执行命令EXIT。要运行notepad,您只需输入notepad batchfilename.bat,记事本将打开batchfilename.bat 进行编辑。完成后,在提示符处键入batchfilename 将运行批处理文件,并且批处理中的任何响应都将显示在屏幕上。就我个人而言,我使用EDITPLUS,它可以设置颜色高亮关键字并克服NOTEPAD的一些坏习惯
  • ECHO 关键字只会在屏幕上显示一条消息,因此ECHO RD "%target%\%%t" 会简单地显示RD ".\media files\SOMESUBDIR",而不是实际执行RD ".\media files\SOMESUBDIR" 并删除子目录。当然,简单地从行中删除关键字ECHO 会改变它的行为——而不是显示RD... 命令,RD... 命令将被执行——连同目录...
  • 添加PAUSE 就像我对原始批次所做的那样,如果它只是像您一样运行,则会导致平衡窗口保持打开状态。不过,使用 DOS 会话更容易。然后我们需要非常准确地知道消息是什么。别担心 - 我有持续供应的咖啡和一大瓶阿司匹林......
猜你喜欢
  • 2014-12-27
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
相关资源
最近更新 更多