批处理如何从一个文档里提取某段字符串并写到另一个文档里

文件C:\1.TXT 中有许多文件路径,如:
"D:\LOG\A15.LOG"
"D:\LOG\C18.TXT"
按照指定的路径搜索该文件(绝对有这个文件,因为已经过滤过了),并提取里面的某段信息(绝对只有一个,但里面有许多乱码)PACK: 后面的6个字符.

输出到
C:\2.TXT,格式如下
如:"D:\LOG\A15.LOG"中是PACK:02155A,则输出
文件名称(不包括后缀):提取的字符
A15:02155A
8?</?h?蘟 PACK:02512D Jt8?寴' d
截取内容为02512D

也有可能,文件没有这个信息,
如:"D:\LOG\A15.LOG" 无PACK:这个字符,则输出
文件名称(不包括后缀):X
A15:X

注意一下 关键字符串"PACK:"中全半角必须与实际一致(代码中共有两处)
@echo off
(for /f "usebackq tokens=*" %%i in ("c:\1.txt")do (
if exist "%%i" (
>con echo %%i
for /f "delims=" %%j in ('type "%%i"^|find /i "PACK:"')do set "s=%%j"
if defined s (
setlocal enabledelayedexpansion
set "s=!s:*PACK:=!"
set "s=!s:~,6!"
echo %%~ni:!s!
endlocal
set "s="
)else echo %%~ni:X
)else echo %%i 文件没找到>con
))>"c:\2.txt"
pause
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-19
描述不清晰。
你是要,根据一个文档里的路径来提取,路径文件里的某些字符?
是固定PACK:后面的所有字符,
还是只截取。PACK后面的一第一个开始的到第6个字符。?
相似回答