- @echo off&setlocal enabledelayedexpansion
- ::获取资料夹内TXT文件内数据量并改名
- color 1f
- set /p sr=请选择1(修改)2(恢复):
-
- if %sr%==1 goto :gg
- if %sr%==2 goto :hh
- goto :eof
-
- :gg
- if exist 文件名.log del 文件名.log
- for /f "delims=" %%I in ('dir /a-d /b *.TXT') do (
- set /a N+=1,H=10000+N
- set "H=!H:~-2!"
- set /a M=0
- for /f "delims=" %%K in (%%I) do (
- set /a M+=1
- )
- echo 文件%%~nI内数量为!M!个
- echo %%I^|%%~nI-!M!.txt>>文件名.log
- ren %%I %%~nI-!M!.txt
- )
- goto :end
-
- :hh
- for /f "delims=" %%i in ('dir /a-d/b *.txt') do (
- for /f "tokens=1 delims=^|" %%f in ( 文件名.log ) do (
- ren %%i %%f
- )
- )
-
- :end
- echo.修改完成!4秒后退出...
- ping -n 4 127.1>nul
-
-
-
- ::简要说明:对于变量%0~%9及for里使用的%%i这样的变量,可以有以下的语法:
- :: ~I - 删除任何引号("),扩充 %I
- :: %%~fI - 将 %%I 扩充到一个完全合格的路径名
- :: %%~dI - 仅将 %%I 扩充到一个驱动器号
- :: %%~pI - 仅将 %%I 扩充到一个路径
- :: %%~nI - 仅将 %%I 扩充到一个文件名
- :: %%~xI - 仅将 %%I 扩充到一个文件扩展名
- :: %%~sI - 扩充的路径只含有短名
- :: %%~aI - 将 %%I 扩充到文件的文件属性
- :: %%~tI - 将 %%I 扩充到文件的日期/时间
- :: %%~zI - 将 %%I 扩充到文件的大小
复制代码 我写了个,测试可以满足你的要求,增加了恢复功能 |