用bat脚本重命名当前文件夹下的txt文件,要求按文件的文件名的第三位数字升序的顺序,且十位数要排在所有个位数的后面,将文件名从1开始进行重命名
时间: 2024-02-26 09:57:09 浏览: 17
好的,以下是针对你的问题的bat脚本:
```
@echo off
setlocal enabledelayedexpansion
set i=1
for /f "tokens=3 delims=_" %%a in ('dir /b /on *.txt') do (
set num=0%%a
set num=!num:~-3!
ren "*_%%a_*.txt" "!num!.txt"
set /a i+=1
)
```
这个脚本与之前的脚本类似,但是增加了对数字前导0的处理。具体的工作流程如下:
1. 将变量i初始化为1,用于给文件递增编号。
2. 使用dir命令获取当前文件夹下所有txt文件的列表,并按文件名升序排序。
3. 对于每个文件名,从中提取第三个用"_"分隔的数字作为排序依据。
4. 将数字前面加上一个0,然后从字符串末尾取出后3位,这样可以保证所有数字都是3位数,且十位数排在个位数的后面。
5. 使用ren命令将当前文件重命名为"!num!.txt",其中"!"是因为我们需要启用delayed expansion,否则变量num的值会在循环开始前就被扩展成空。
6. 将变量i加1,为下一个文件名做准备。
希望这个脚本能够满足你的需求!
相关问题
用bat脚本重命名当前文件夹下的txt文件,要求按文件的文件名的第三位数字升序的顺序,将文件名从1开始进行重命名
好的,以下是针对你的问题的bat脚本:
```
@echo off
setlocal enabledelayedexpansion
set i=1
for /f "tokens=3 delims=_" %%a in ('dir /b /on *.txt') do (
ren "*_%%a_*.txt" "!i!.txt"
set /a i+=1
)
```
这个脚本假设所有要重命名的txt文件都符合"*_数字_*.txt"的格式,其中数字是你要排序的依据。脚本的工作流程如下:
1. 将变量i初始化为1,用于给文件递增编号。
2. 使用dir命令获取当前文件夹下所有txt文件的列表,并按文件名升序排序。
3. 对于每个文件名,从中提取第三个用"_"分隔的数字作为排序依据。
4. 使用ren命令将当前文件重命名为"!i!.txt",其中"!"是因为我们需要启用delayed expansion,否则变量i的值会在循环开始前就被扩展成1。
5. 将变量i加1,为下一个文件名做准备。
希望这个脚本能够帮到你!
用bat脚本重命名当前文件夹下的txt文件,要求按文件夹中的文件名升序的顺序,且十位数要排在所有个位数的后面,将文件名从1开始进行重命名
好的,以下是针对你的问题的bat脚本:
```
@echo off
setlocal enabledelayedexpansion
set i=1
for /f "delims=" %%a in ('dir /b /on *.txt') do (
set num=0%%~na
set num=!num:~-3!
ren "%%a" "!num!.txt"
set /a i+=1
)
```
这个脚本与之前的脚本类似,但是按照文件名升序排序的方法不同。具体的工作流程如下:
1. 将变量i初始化为1,用于给文件递增编号。
2. 使用dir命令获取当前文件夹下所有txt文件的列表,并按文件名升序排序。
3. 对于每个文件名,从中提取文件名作为排序依据。
4. 将文件名前面加上一个0,然后从字符串末尾取出后3位,这样可以保证所有数字都是3位数,且十位数排在个位数的后面。
5. 使用ren命令将当前文件重命名为"!num!.txt",其中"!"是因为我们需要启用delayed expansion,否则变量num的值会在循环开始前就被扩展成空。
6. 将变量i加1,为下一个文件名做准备。
希望这个脚本能够满足你的需求!