批量文件重命名文件并将序列号添加到文件名

时间:2017-04-18 09:14:12

标签: batch-file

我从另一篇文章中选择了以下代码。我相信它应该拿起当前的目录文件夹并将其包含在流程的重命名部分中,但这对我来说似乎不起作用。

@ECHO OFF
setlocal enabledelayedexpansion
PUSHD "%~1"
set inc=0
FOR /f "delims=" %%a in ('dir /b /a-d') DO (
set /a inc+=1
Echo Ren: "%%a" "%~n1!inc!%%~xa"
Ren "%%a" "%~n1!inc!%%~xa"
)
POPD

我有一个.txt文件,每天都会收到一个名为时间戳的文件夹。示例如下:

FileNameA_20170418153000.txt

基本上我想修改上面的代码来重命名文件:filenam0001.txt并继续更新序列号(效果非常好)。

即。 filenam0001.txt filenam0002.txt filenam0003.txt

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您需要手动添加前导零(添加一些零,然后剪切最后x个字符):

@echo off
setlocal EnableDelayedExpansion
set inc=0
for /l %%a in (1,1,50) do (
  set /a inc+=1
  set num=00000000!inc!
  set num=!num:~-5!
  echo !num!
)

答案 1 :(得分:0)

我修改了你的代码,以便以简单的方式插入前导零...

@ECHO OFF
setlocal enabledelayedexpansion
PUSHD "%~1"
set inc=10000
FOR /f "delims=" %%a in ('dir /b /a-d') DO (
   set /a inc+=1
   Echo Ren: "%%a" "%~n1_%%~na!inc:~1!%%~xa"
   Ren "%%a" "%~n1_%%~na!inc:~1!%%~xa"
)
POPD