@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.txt') do (
set var=!var!%%j
set var=!var: =!
if %%i equ 2 ren a.txt !var!.txt
)
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.txt') do (
set var=《!var!》%%j
set var=!var: =!
set var=!var:《》=!
if %%i equ 2 ren a.txt !var!.txt
)
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(".")
for each file in folder.files
if ucase(right(file,3))="TXT" then
with fso.opentextfile(file)
n="《" & trim(.readline) & "》"
n=n & trim(.readline)
.close
end with
file.name=n & ".txt"
end if
next
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.getfolder(".") For Each file In folder.files If UCase(Right(file,3)) = "TXT" Then
With fso.OpenTextFile(file) n = "《" & Trim(.ReadLine) & "》"
n = n & Trim(.ReadLine)
.Close
End With file.name = n & ".txt" End If
Next
Originally posted by venchia at 2007-7-15 02:30:
我是要批量的,不是单个的
还有,就算用a.txt也不行,我用下面附件的几个文件测试失败
比如下面的几个文件是想一次性的改名为
《魔斗士》 ...
你的测试失败是因为全角、半角问题。
用你的附件测试了以下代码,成功。
@echo off&setlocal enabledelayedexpansion
for /f %%a in ('dir/b *.txt') do (
for /f "tokens=1* delims=:" %%i in ('findstr /n .* %%a') do (
set "var=!var!%%j"
set var=!var: =!
if %%i equ 2 ren %%a 《%%~na》!var!.txt
set var=
)
)