联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /s /b *.txt') do ( call :lp %%i for /f "delims=" %%j in ('dir /s /b *.txt') do if "%%~nj"=="!name!" set name=!name!%random:~,1% ren "%%~dpnxi" "!name!.txt" ) echo 改名全部完成! pause>nul&goto :eof :lp for /f "delims=" %%i in (%~dpnx1) do ( set a=%%i if not "!a:~10!"=="" set name=!a:~,10!&goto :eof )
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /s /b *.txt') do ( set "name=" for /f "delims=" %%a in ('type "%%i"') do ( if not defined name set "name=%%a" ) ren "%%i" "!name:~-10!%%~xi" ) echo 改名全部完成! pause>nul
Originally posted by pusofalse at 2008-5-7 07:08 PM: 但是文件内容大多开头都有空行,所以我想将搜寻内容定在前3行。。。。 ---------------------------------------------- 这句没看懂~~~ 应该举个实例 比如 89u ...
Originally posted by shanyinwx at 2008-5-8 12:43 AM: 对,就是这样
Originally posted by shanyinwx at 2008-5-8 01:03 AM: 但是现在我又发现了一个问题:还有很多的文件内容在开头的几行是相同的,这样就只能命名一个文件,而其他的文件则不能改名,改怎么办,再次请 ...
@echo off&setlocal enabledelayedexpansion for %%a in (*.txt) do ( set n=0 for /f "delims=" %%i in (%%a) do ( set/a n+=1 if !n! equ 1 set str=%%i&ren %%a !str:~0,10!.txt>nul 2>nul || ren %%a !str:~0,11!.txt ) ) pause
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /b *.txt') do ( set n=0&set "name=" for /f "delims=" %%a in ('type "%%i"') do ( if not defined name set "name=%%a" ) if exist "!name:~-10!%%~xi" (call :loop "%%i") else ( ren "%%i" "!name:~-10!%%~xi" ) ) echo 改名全部完成! pause>nul exit :loop set /a n+=1 if exist "!name:~-10!%n%%~x1" goto loop ren "%~1" "!name:~-10!%n%%~x1" goto :eof