windows下文件重命名的批处理【.bat 和 C++ 】 您所在的位置:网站首页 bat批量重命名文件ren怎么用不了了 windows下文件重命名的批处理【.bat 和 C++ 】

windows下文件重命名的批处理【.bat 和 C++ 】

2024-07-18 00:47| 来源: 网络整理| 查看: 265

文章目录 一:使用场景场景1:场景2: 二:解决场景1 :使用bat1.bat含义2.代码一3.代码二4.效果图5.参考: 三:解决场景2:C++ 和 bat 联用1.代码:2.说明:3.效果图4.拓展&参考:

一:使用场景 场景1:

在网上保存的很多图片之类的的自动命名都乱七八糟的,一个一个地重命名12345这样编号太麻烦了,想着能不能写个脚本批处理一下。 【文件可以无序、只需要编号1 2 3 4 5 … 就ok了,需求简单】 在这里插入图片描述

场景2:

下载文件的时候名字太长了,我想把名字缩短一点,比如ML_Notes1_绪论、ML_Notes2_性能度量 … 【文件需有序,要保留原名字的部分信息,得想一想怎么弄】在这里插入图片描述

二:解决场景1 :使用bat 1.bat含义

在这里插入图片描述

2.代码一

功能:不改变后缀名,随机地将无序变成有序的12345…

@echo off ::下面打开系统延时 setlocal enabledelayedexpansion set /a b=0 ::下面按时间顺序显示当前文件夹下的所有文件名 dir /b/od ::给你反悔时间 pause ::执行 for /f "delims=" %%f in ('dir /b/od *.*') do ( if not "%%f"=="%~nx0" ( set /a b+=1 ren "%%f" "!b!%%~xf" echo. !b!%%~xf ) ) pause 3.代码二

功能: 将所有乱序的 .txt 文件 改成小说1.txt,小说2.txt … 【set a = 00中00不能改成0.】

@echo off set a=00 setlocal EnableDelayedExpansion for %%n in (*.txt) do ( set /A a+=1 ren "%%n" "小说!a!.txt" ) 4.效果图

在这里插入图片描述

5.参考:

https://blog.csdn.net/Jo_liver/article/details/100624921 https://www.cnblogs.com/h2zZhou/p/8966249.html 【侵权删】

三:解决场景2:C++ 和 bat 联用 1.代码: //由于嵌入bat,无需绝对路径。所以直接将此cpp放入目标文件夹中运行即可。 #include #include #include #include #include using namespace std; int main(){ // 创建文件名列表文件,若存在则清空文件 fstream file_list("file_list.txt",std::ios::out); file_list.close(); // 嵌入bat操作,写入文件名列表到file_list.txt system("dir /a /b >> file_list.txt"); file_list.open("file_list.txt", std::ios::in); // int cnt=0; string str_oldname = ""; string str_newname = ""; while (!file_list.eof()) { getline(file_list,str_oldname); int loc = str_oldname.find("》",0);//因为我们要批处理的文件名中含有》 其实也可以选择其他的标识 if (loc != string::npos)//排除生成的.cpp .exe file_list.txt { //cnt++; str_newname = str_oldname.substr(loc); str_newname = str_newname.replace(0,10,"ML_Notes"); // cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有