【问题标题】:Batch rename folders to files批量重命名文件夹为文件
【发布时间】:2014-06-19 15:40:43
【问题描述】:

我有一个父文件夹,下面有很多文件夹(电影)。每个文件夹有 1 个文件(实际电影)。

我想要一些关于批处理脚本的建议,我可以运行该脚本将文件夹重命名为不包括扩展名 (.avi) 的文件(电影)

例如

之前

Parent (folder)
  Folder 1
    Movie 1.avi

  Folder 2
    Movie 2.avi

之后

Parent (folder)
  Movie 1
    Movie 1.avi

  Movie 2
    Movie 2.avi

【问题讨论】:

    标签: file batch-file directory rename dos


    【解决方案1】:
    @ECHO OFF 
    SETLOCAL
    SET "sourcedir=U:\sourcedir"
    FOR /f "delims=" %%a IN (
      'dir /b /ad "%sourcedir%\*" '
     ) DO (
      FOR %%b IN ("%sourcedir%\%%a\*") DO IF /i "%%~na" NEQ "%%~nb" ECHO(REN "%sourcedir%\%%a" "%%~nb"
    )
    
    GOTO :EOF
    

    所需的 REN 命令仅用于测试目的ECHOed。 验证命令正确后,将 ECHO(REN 更改为 REN 以实际重命名文件。

    您需要将您的目录设置为sourcedir。我设置了我的测试目录。

    【讨论】:

      【解决方案2】:

      以下批处理文件可以完成这项工作:

      @echo off
      if exist "%TEMP%\RenameFolders.bat" del "%TEMP%\RenameFolders.bat" >nul
      cd /D "Complete\path\to\parent\folder"
      for /R "Complete\path\to\parent\folder" %%I in (*.avi) do echo ren "%%~dpI" "%%~nI">>"%TEMP%\RenameFolders.bat"
      if exist "%TEMP%\RenameFolders.bat" (
         call "%TEMP%\RenameFolders.bat"
         del "%TEMP%\RenameFolders.bat" >nul
      )
      

      "Complete\path\to\parent\folder"必须在批处理文件中通过真实父文件夹路径修改两次。

      主要工作由命令FOR 完成。在命令提示符窗口中运行for /? 以获取有关选项的信息

      • /R ...递归文件夹/文件扫描,以及
      • %%~dpI ...文件的驱动器和路径,以及
      • %%~nI ... 没有路径和文件扩展名的文件名。

      对于每个 *.avi 文件,执行命令 echo 以创建重命名命令,稍后用于将包含 *.avi 文件的文件夹重命名为 *.avi 文件的名称。

      无法在FOR 循环内直接重命名文件夹,因为当文件夹是正在运行的进程的当前工作目录时,无法重命名该文件夹。当FOR 正在运行时,每个文件夹都是批处理的当前工作目录。

      第三行中的命令CD 只是确保将工作目录设置为要重命名的所有子文件夹的父文件夹,以避免重命名文件夹失败,因为批处理文件是从其中一个子文件夹启动的。

      第二行只是确保临时文件的文件夹中没有文件RenameFolders.bat,例如,当命令FOR 当前正在运行时,单击按钮X 终止此批处理文件一次.

      在命令 FOR 递归处理所有 *.avi 文件并将带有命令 ren 的行附加到每个文件的文件 RenameFolders.bat 之后,这个创建的批处理文件被称为现在重命名文件夹。

      最后临时创建的批处理文件不再需要删除。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-22
        • 1970-01-01
        • 2012-05-04
        • 2015-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多