批处理,修改文件后缀名,本例是将.txt改为.m文件

::修改
SET old=.txt
SET new=.m


::还原
::SET new=.TXT
::SET old=%old%%COMPUTERNAME%


::文件列表
SET list=%old%.VAB


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 1、先把当前目录及子目录下所有%old%后缀名的文件列出来。
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
DIR /A-D /B /L /N /ON /S *%old%>%list%


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 2、再根据列出来的记录修改文件名。
::
:: FOR命令加上"delims=|",表示文件夹名称变量用“|”分隔。因为默认是空格和制表符,一旦遇到如“新建文件
::
:: 夹 (2)”这样的文件夹,会断开成为“新建文件夹”,导致找不到文件夹。又因为“|”不能用于文件夹名,所以使
::
:: 用“|”作为分隔符。
::
:: 可以用 %%~ 将文件名分离成文件名、扩展名、盘符等部分,%%~na表示只有文件名,%%~xa表示只有后缀名
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
IF EXIST %list% FOR /F "delims=|" %%a IN ( %list% ) DO IF EXIST "%%a" REN "%%a" "%%~na%new%"


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 3、删除用过的列表。
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
IF EXIST %list% ATTRIB /D /S -S -H -A -R %list% && DEL /F /Q %list%


PAUSE

 

 

 

你可能感兴趣的:(list,扩展)