windows下文件重命名的批处理【.bat 和 C++ 】 | 您所在的位置:网站首页 › bat批量重命名文件ren怎么用不了了 › windows下文件重命名的批处理【.bat 和 C++ 】 |
文章目录
一:使用场景场景1:场景2:
二:解决场景1 :使用bat1.bat含义2.代码一3.代码二4.效果图5.参考:
三:解决场景2:C++ 和 bat 联用1.代码:2.说明:3.效果图4.拓展&参考:
一:使用场景
场景1:
在网上保存的很多图片之类的的自动命名都乱七八糟的,一个一个地重命名12345这样编号太麻烦了,想着能不能写个脚本批处理一下。 【文件可以无序、只需要编号1 2 3 4 5 … 就ok了,需求简单】 下载文件的时候名字太长了,我想把名字缩短一点,比如ML_Notes1_绪论、ML_Notes2_性能度量 … 【文件需有序,要保留原名字的部分信息,得想一想怎么弄】 功能:不改变后缀名,随机地将无序变成有序的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.效果图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 实验室设备网 版权所有 |