【问题标题】:Batch Grab Filename and Rename批量抓取文件名和重命名
【发布时间】:2015-03-31 09:01:51
【问题描述】:

我有一个文件名如下的文件: Summary_20022015.xlsx

我想做的是使用批处理文件重命名。

1) FROM:Summary_20022015.xlsx

收件人:Summary_20150220.xlsx

2) FROM:Summary_25022015.xlsx

收件人:Summary_20150225.xlsx

原来是(文件名)_DDMMYYYY.xlsx

我需要的是保留(文件名)并改为 YYYYMMDD。 只需使用实际文件名重新排列即可。

结果是(文件名)_YYYYMMDD.xlsx

因为我在文件夹中有多个文件。 手动重命名它们会很麻烦。

【问题讨论】:

  • 你说文件夹中有多个文件,但你只举一个例子。由于将所有文件名更改为相同的名称会完全破坏一切,这显然不是您想要做的。请详细说明您的问题,否则我们将无法为您提供帮助。
  • 我已经编辑了我的问题.. 更多分解。希望它能提供更多信息
  • 是的,这很有帮助。谢谢。
  • 虽然我还应该指出,您的示例将从 DDMMYYYY 变为 YYYYMMDD,如果您确实需要 YYYYDDMM,您应该更新您的示例。
  • 哈哈是的,这是一个拼写错误。我编辑了我的问题。正如你所提到的,YYYYMMDD 是我所需要的。谢谢!!

标签: batch-file batch-rename


【解决方案1】:

这适用于我的测试文件。在运行脚本之前,您需要设置文件所在的位置。此外,在运行之前将 echo 放在底部的 ren 语句前面可能是个好主意,这样您就可以确保获得所需的输出。

@echo off
setlocal enabledelayedexpansion

:: While it's a good idea to never have spaces in your paths, sometimes it's unavoidable, so use quotes
:: The quotes being where they are will preserve the spaces without including the quotes in the value
set source_files="C:\path\to\where\the files\are"

:: Go into the %source_files% path, but remember where we were for later
pushd %source_files%

:: The /b option will only process the file names and not the other things that appear with dir output
:: Split each filename on underscores and periods
:: %%A is going to be the word Source and %%C is going to be xlsx
for /F "tokens=1-3 delims=_." %%A in ('dir /b') do (
    set base_date=%%B
    set date_day=!base_date:~0,2!
    set date_mon=!base_date:~2,2!
    set date_year=!base_date:~4,4!

    ren %%A_%%B.%%C %%A_!date_year!!date_mon!!date_day!.%%C
)

:: Go back to the path we were in before the script ran
popd

【讨论】:

  • 代码运行良好!!!结果符合预期!!如果文件名中有空格,我会添加“”以防止语法错误。谢谢@Dark.. ren "%%A_%%B.%%C" "%%A_!date_year!!date_mon!!date_day!.%%C"
  • @marcuschan - 您的文件名示例没有空格,所以我编写的代码只允许文件路径中的空格,因为这很可能会发生。另外,如果我的解决方案对您有用,请单击我的答案旁边的复选标记。
  • 是的,我明白。如果其他人(文件名)之间有空格,则添加双引号会很好。所以无论(文件名)如何,它都可以使用。所以这将是一个普遍的用法。总之真的很感谢。它是一个活的保护程序哈哈..我点击了检查。再次感谢您。
猜你喜欢
  • 2017-04-20
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
相关资源
最近更新 更多