[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助BAT脚本实现文件更名问题

在win系统下,比如A文件夹种有很多的文件(无占用情况等);
我需要做到;把每一个后缀的文件分别从1命名到文件数量的结尾。。。。(比如有rar文件有100个,那么命名就为1.rar一直到100.rar;其他的文件后缀也这样改)
每日一问

回复 11# flashercs


    非常好用,感谢大哥
每日一问

TOP

回复 16# flashercs


牛牛牛,膜拜大佬
每日一问

TOP

回复 13# zaqmlp


    谢谢大佬
每日一问

TOP

回复 11# flashercs


    谢谢大佬,好复杂哦
每日一问

TOP

回复 10# flashercs


    谢谢,我的这里边没有这种文档的
每日一问

TOP

回复 9# Batcher


    谢谢老大这个bat已经能满足我的要求了,非常感谢
每日一问

TOP

回复 16# flashercs

那就把判断加上
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 15# zaqmlp


    那也不该伤害无扩展名的文件啊?
还有dir *.doc *.xls
会同样出现*.docx *.xlsx *.doca *.docb *.doct *.doc! 等任意文件

TOP

回复 14# flashercs
楼主说按扩展名,干嘛要考虑无扩展名的
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 13# zaqmlp


    不考虑没有扩展名的文件吗?
    不考虑扩展名为txt doc docx的类型?

TOP

本帖最后由 zaqmlp 于 2018-10-1 22:58 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/b *.*^|find /v "%~nx0"') do (
  3.     if "%%~xa" neq "" (
  4.         ren "%%a" "_%%~nxa"
  5.         if not defined %%~xa (set %%~xa=1)
  6.     )
  7. )
  8. for /f "tokens=1 delims==" %%a in ('set .') do (
  9.     for /f "tokens=1* delims=:" %%b in ('dir /a-d/b "*%%a"^|findstr /lie "%%a"^|findstr /n .') do (
  10.         if "%%~nxc" neq "%~nx0" (
  11.             rem echo;"%%c" --^> "%%b%%~xc"
  12.             ren "%%c" "%%b%%a"
  13.         )
  14.     )
  15. )
  16. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 10# flashercs


    我很赞同。希望楼主没有这样的文件。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

重命名.bat
  1. 0<1/*,:
  2. @echo off
  3. REM rename files with same extension name in order using numbers. e.g: 1.txt 2.txt 3.txt ...
  4. %windir%\system32\CScript.exe -e:jscript -nologo %0 %*
  5. exit /b
  6. */;
  7. function rename(e){var r,t,i,a={},c={};try{r=new Enumerator(fso.GetFolder(e).Files)}catch(e){return}for(;!r.atEnd();r.moveNext())if(t=r.item(),!c[t.Name]&&t.Path!==WScript.ScriptFullName)for(i=fso.GetExtensionName(t.Name),""!==i&&(i="."+i),a.hasOwnProperty(i)?++a[i]:a[i]=1;;)try{t.Name!==a[i]+i&&(t.Name=a[i]+i);break}catch(e){c[""+a[i]+i]=!0,++a[i]}}var fso=new ActiveXObject("Scripting.FileSystemObject"),folder,oArgs=WScript.Arguments;new ActiveXObject("WScript.Shell").CurrentDirectory=fso.GetParentFolderName(WScript.ScriptFullName);for(var i=0,l=oArgs.length;i<l;++i)rename(oArgs(i));0===l&&rename(fso.GetParentFolderName(WScript.ScriptFullName)),WScript.Echo("Mission complete."),WScript.Quit();
复制代码

TOP

回复 9# Batcher


    文件如果是如下情况会失败。
#a.txt
_b.txt
!c.txt
1.txt
2.txt
3.txt

TOP

返回列表