file - 如何使用批处理文件将文件夹中的文件重命名为文件夹名

标签 file batch-file rename move directory

你们中的任何人都可以帮助我解决很多同名文件的问题,这些文件放在单独的文件夹中。
文件夹以数字命名,但其中的文件名为 index.XXXX - 其中 XXXX 可以是 .jpg 或 .html 或 .pdf。
我想制作一个“程序”,可以将所有“索引”文件重命名为与其所在文件夹相同的名称。
文件夹以 6 位数字命名 - 各不相同。
希望完成此操作后,我想将所有重命名的文件 move 到一个新的单个文件夹中,这样我就可以更轻松地查看整个内容。期待阅读您的答案。

最佳答案

@Echo OFF

FOR /D /R %%# in (*) DO (
    PUSHD "%%#"
    FOR %%@ in ("index*") DO (
        Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
        Ren "%%@" "%%~n#%%~x@"
    )
    POPD
)

Pause&Exit

测试文件夹结构:
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123321
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123321\Index.txt

C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\Index.php

C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\000000
C:\Users\Administrador\Desktop\Nueva carpeta (3)\123456\000000\Index.css

C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\Index.html

C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\666999
C:\Users\Administrador\Desktop\Nueva carpeta (3)\654321\666999\Index.jpg

输出:
Ren: ".\123321\Index.txt"      "123321.txt"
Ren: ".\123456\Index.php"      "123456.php"
Ren: ".\654321\Index.html"     "654321.html"
Ren: ".\000000\Index.css"      "000000.css"
Ren: ".\666999\Index.jpg"      "666999.jpg"

关于file - 如何使用批处理文件将文件夹中的文件重命名为文件夹名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266930/

相关文章:

file - 按批处理文件中的名称排序

powershell - 直接在 powershell 中测试批处理语句,无需将调用包装在批处理文件中

bash - 在循环中重命名匹配模式的文件 - Bash

powershell - PowerShell 批量文件重命名中的奇怪行为

visual-studio - 是否有用于在解决方案资源管理器中重命名文件的 Visual Studio 键盘快捷键?

file - 在批处理文件中,组合两个字符串以创建组合路径字符串

java - 对视频文件的前 256 字节进行异或运算

.net - 检查文件夹中是否包含另一个文件夹中文件的副本

c++ - 系统 ("c:\\sample\\startAll.bat") 由于工作目录而无法运行?

c - C 上的文件操作