改文件名
本帖最后由 aaaa_123 于 2019-11-22 10:28 编辑大家好最近遇到问题有点多, 麻烦大家了
文件夹下有2000多个大大小小不同名称的文本,需要在文件名最前面加入数字和横杠,但是得按b内文件名先后次序加入数字
ls *.txt
玛莎拉蒂_24.txt
宝马_45.txt
奔驰_21.txt
丰田_105.txt
丰田冠_80.txt
b.txt已编缉好次序
cat b.txt
玛莎拉蒂_24
宝马_45
奔驰_21
丰田冠_80
丰田_105
加入数字和横杠更改后文件名称 数字大小是根据b.txt先后次序
1-玛莎拉蒂_24.txt
2-宝马_45.txt
3-奔驰_21.txt
4-丰田冠_80.txt
5-丰田_105.txt
非常感谢
因为平常使用Win环境的多
批处理可能会更适合使用环境,如果不shell也行的
{:1_1:} 本帖最后由 cfwyy 于 2019-11-22 12:14 编辑
bat
@echo off
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "delims=:" %%j in ('findstr /n /r "^%%~ni$" b.txt') do (
rename "%%i" "%%j-%%i"
)
)
pause
几千个没试过,建议先做好备份。 回复 3# cfwyy
试了一下, 基本可以, 似乎次序有点不太准确 会不会是不支持文件名某些字符格式呢 例如 这样文件名
cat b.txt
玛莎拉蒂_24
宝马_45
奔驰_21
丰田_104
回复 3# cfwyy
我试了一下似乎发生数字重复,会不会是有些文件存在部分相同原因呢
谢谢
应该是存在部分文件名相同原因, b文件名需要全部正确匹配上 再测了一下 发现是代码数字算法重复使用, 存在插入算法相同数字情况
大哥再帮忙改一下:handshake 回复 8# aaaa_123
已更新。 回复 9# cfwyy
谢谢:handshake 这次帅了
页:
[1]
2