在第一个下划线之前重命名文件夹中所有文件名的开头

时间:2016-02-02 14:13:24

标签: windows batch-file command-line command

在批处理文件中,我想重命名一个文件夹中所有文件的开头,目前的文件名称是这样的

1_sometext 2_sometext ... 467_sometext

这导致了一个问题,我在目录上调用目录时需要这些文件以正确的顺序显示

我希望他们看起来像 001_sometext 002_sometext 003_sometext ... 467_sometext

这样,当我需要它们时,它们总会按顺序出现

如何在批处理文件中完成?

1 个答案:

答案 0 :(得分:0)

这会根据需要重命名您的文件:

@echo off
set YOUR_DIR=%1
setlocal enabledelayedexpansion
set temp_str=something
for /f "tokens=*" %%L in ('dir /b %YOUR_DIR%' ) do (
      set INITIAL_NAME=%%L
       for /f "tokens=1 delims=_" %%a in ("%%L") do (
            set INTEGER_PART=%%a
            SET temp_str=!INTEGER_PART!
        )

         call :GET_STR_LEN
         if "!str_len!"=="1" (
            set PREFIX=00
         ) else (
             if "!str_len!"=="2" (
                 set PREFIX=0
              ) else (
                   set PREFIX=
                )

             ) 


        pushd %YOUR_DIR%
        echo The file is %%L
        set NEW_NAME=!PREFIX!%%L
        echo The new name is !NEW_NAME!
        REN "%%L" "!NEW_NAME!"
        popd

    )

:GET_STR_LEN
SET /a str_len=0

:loop
if defined temp_str (
SET temp_str=!temp_str:~1!
SET /A str_len=str_len+1
GOTO loop
)

exit /b

将其放在名为rename_files.bat的批处理文件中,并将其执行为: rename_files" your_dir"