如何批量修改文件夹下(嵌套)文件后缀名

dir /s *.exe可以列出当前文件夹及其子文件夹下的所有exe文件,而copy、ren、move是可以用来修改文件后缀名。现在的问题就是通过怎样的批处理语句可以批量修改该文件夹及其子文件夹下的文件后缀名。求高手指教~~~



呵呵,解决问题的速度很快嘛!感觉现在加入要想弄个cmd脚本都得自己解决问题,很少遇上比较懂cmd的人了:handshake



站在低处,渴望更高
比如你要更改c:test里面的exe为txt

FOR /R c:test %I IN (*.exe) DO REN "%I" *.txt
本帖最近评分记录
  • niuyuanwu 无忧币 +2 谢谢及时帮助 2013-10-24 14:30



引用:
原帖由 beanxyz 于 2013-10-24 06:59 发表 
比如你要更改c:test里面的exe为txt

FOR /R c:test %I IN (*.exe) DO REN "%I" *.txt
简约,那如果现在做的是复制操作,原来的exe在哪个文件夹,复制后的bak也还在那个文件夹,这该如何写呢,试过
FOR /R E:MATLAB %%i IN (*.exe) DO @COPY %%i *.bak
可是这样写会在当前目录复制所有文件,求指教



引用:
原帖由 qq414207614 于 2013-10-23 22:25 发表 
呵呵,解决问题的速度很快嘛!感觉现在加入要想弄个cmd脚本都得自己解决问题,很少遇上比较懂cmd的人了:handshake
我也就懂点皮毛~~~不过有时的确很实用



引用:
原帖由 月流霜 于 2013-10-24 10:45 发表 

简约,那如果现在做的是复制操作,原来的exe在哪个文件夹,复制后的bak也还在那个文件夹,这该如何写呢,试过
FOR /R E:MATLAB %%i IN (*.exe) DO @COPY %%i *.bak
可是这样写会在当前目录复制所有文件,求指教 ...
FOR /R c:test %I IN (*.exe) DO copy "%I" "%~npI.bak"


%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only
%~sI        - expanded path contains short names only
%~aI        - expands %I to file attributes of file
%~tI        - expands %I to date/time of file
%~zI        - expands %I to size of file

The modifiers can be combined to get compound results:
%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
%~fsI       - expands %I to a full path name with short names only



引用:
原帖由 beanxyz 于 2013-10-24 12:13 发表 

FOR /R c:test %I IN (*.exe) DO copy "%I" "%~npI.bak"


%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I t ...
果然功力深厚,for /r  %%i in (*.exe) do @COPY /y "%%i" "%%~dpni.bak",完美解决,比我那个先cd,再copy的方法简约多了,看来下午有必要再把批处理语言再看一遍~~~



活到老,学到老!



引用:
原帖由 月流霜 于 2013-10-24 13:02 发表 

果然功力深厚,for /r  %%i in (*.exe) do @COPY /y "%%i" "%%~dpni.bak",完美解决,比我那个先cd,再copy的方法简约多了,看来下午有必要再把批处理语言再看一遍~~~ ...
这年头硬件不是问题,能解决问题就行,多两步少两步无所谓的。我以前有个室友,毕业后写手机游戏,当年手机内存都小,那个对算法的要求和代码的效率要求才变态



引用:
原帖由 beanxyz 于 2013-10-24 13:54 发表 

这年头硬件不是问题,能解决问题就行,多两步少两步无所谓的。我以前有个室友,毕业后写手机游戏,当年手机内存都小,那个对算法的要求和代码的效率要求才变态 ...
好吧,膜拜下~~~不过看优雅的代码的确是一种享受~~~



引用:
原帖由 月流霜 于 2013-10-24 13:56 发表 

好吧,膜拜下~~~不过看优雅的代码的确是一种享受~~~
哎 我本科学的的软件,结果现在搞运维,编程都忘的差不多了,也就能看懂基本的代码,平常处理也就是些常见的脚本程序而已。你做安全方面,汇编,数据库,c++,python之类的应该比我熟悉多了



引用:
原帖由 beanxyz 于 2013-10-24 12:13 发表 

FOR /R c:test %I IN (*.exe) DO copy "%I" "%~npI.bak"


%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I t ...
看到这个代码 我只是来加分的



想要在网络的海洋自由的遨游吗?系统攻防欢迎你!!!系统攻防论坛
一个人没有金钱并不可怕,没有地位也并不可悲,只有不善巧思,缺乏智慧,才是人生最大的缺憾。
更多精彩请关注牛牛的微博
引用:
原帖由 beanxyz 于 2013-10-24 14:11 发表 

哎 我本科学的的软件,结果现在搞运维,编程都忘的差不多了,也就能看懂基本的代码,平常处理也就是些常见的脚本程序而已。你做安全方面,汇编,数据库,c++,python之类的应该比我熟悉多了 ...
我没有做安全,到了华为还不知道干什么呢,网络安全只是兴趣而已~~~~



标签: bat批处理ren

评论