【问题标题】:How to rename all files in a directory by inserting a string at beginning of each file name?如何通过在每个文件名的开头插入一个字符串来重命名目录中的所有文件?
【发布时间】:2014-09-28 06:53:05
【问题描述】:

我想创建一个批处理脚本(.txt 或 .exe - 我没有 PowerShell)来重命名一组文件。文件名的当前格式为file_name_51.zip,我想将此文件重命名为MoreDetail_Detail_file_name_51.zip

我尝试使用简单的“重命名项目”脚本或 CMD,但我的计算机无法识别该代码。我从 dbenham 看到了一个很好的可能代码示例:

@echo off
setlocal disableDelayedExpansion
pushd .
subst #: .
#:
for /f "eol=: delims=" %%F in ('dir /b /a-d *.txt^|findstr /er "_[0-9]*.txt"') do (
  set "name=%%~nF"
  setlocal enableDelayedExpansion
  for /f "eol=: delims=" %%A in ("!name:_=\x!") do (
    endlocal
    set "file=%%F"
    set "name=%%~pA"
    set "num=%%~nA"
    setlocal enableDelayedExpansion
    set "num=0000!num:~1!"
    set "name=!name:~1,-1!"
    ren "!file!" "!name:\x=_!!num:~-5!.txt"
    endlocal
  )
)
popd
subst /d #:

但我是一个新手,我不知道如何操纵它来做我需要的事情。你能帮忙吗?

谢谢!

【问题讨论】:

    标签: batch-file batch-rename


    【解决方案1】:

    这是一种方法:

    @echo off
    for /f "delims=" %%a in ('dir /b a-d ') do if /i not "%%~nxa"=="%~nx0" ren "%%a" "MoreDetail_Detail_%%~nxa"
    pause
    

    【讨论】:

    • 感谢您的回答!我试图从中创建一个 .bat 并收到“找不到文件”错误。有办法解决吗?
    • 批处理文件希望您的文件与批处理文件位于同一目录中。批处理文件也将被重命名,因此我编辑了上面的代码。
    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 2017-09-19
    • 2019-07-06
    • 2012-06-01
    • 2014-10-19
    • 2012-01-27
    • 1970-01-01
    • 2018-04-10
    相关资源
    最近更新 更多