【问题标题】:Renaming file names with a BAT file用 BAT 文件重命名文件名
【发布时间】:2014-06-07 10:29:39
【问题描述】:

需要在 Windows 7 中编辑单个文件夹中的一组视频文件的文件名。

有兴趣以一种简单的方式对一组文件名进行以下修改

替换“.”带有字符“x”

eg. 
   original: 04.19 - Lady & Peebles.mp4
   renamed:  04x19 - Lady & Peebles.mp4

使用批处理文件手动执行此操作的合适方法是什么?

【问题讨论】:

  • 您必须使用批处理文件吗?我可以在 C# 中做到这一点
  • @ThatWeirdo,不是每个人都知道 C#.. 像我一样!但在这种情况下,批处理对我来说更容易,没有编译开销。
  • 忘了说“.”我指的是第一个,不是文件扩展名。

标签: windows batch-file windows-7


【解决方案1】:

这样试试

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /a-d/b *.mp4') do (
    set "$File=%%~na"
    echo ren "%%a" "!$file:.=x!%%~xa"
)

包含echo,以便您可以测试输出。如果没问题就删除它。

【讨论】:

    【解决方案2】:
    @echo off
    Setlocal enabledelayedexpansion
    
    Set "Folder=C:\Folder\*.mp4"
    
    Set "Pattern=."
    Set "Replace=x"
    
    FOR %%# IN ("%Folder%") DO (
        SET "File=%%~nx#"
        REN "%%#" "!File:%Pattern%=%Replace%!"
    )
    
    SET "Pattern=xmp4"
    SET "Replace=.mp4"
    
    FOR %%# IN ("%Folder%") DO (
        SET "File=%%~nx#"
        REN "%%#" "!File:%Pattern%=%Replace%!"
    )
    
    PAUSE&EXIT
    

    来源:How to rename file by replacing substring using batch in Windows

    请下次做一些研究。

    【讨论】:

    • @SS' 您是否将Folder 变量更改为正确的路径? @ThatWeirdo 不需要第二次重命名 - 而不是 %%~nx#,您可以使用 %%~n#,它将获得不带扩展名的文件名。然后,您可以在最后添加扩展名。看看@sachadee 的答案。
    【解决方案3】:

    有第一个点 ALL 文件吗?如果是这样,则此命令行执行所需的重命名:

    for /F "tokens=1-3 delims=." %a in ('dir /B *.mp4') do ren "%a.%b.%c" "%ax%b.%c"
    

    如果您在批处理文件中插入前一行,则将百分号加倍。

    【讨论】:

      猜你喜欢
      • 2012-06-20
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多