批处理从一个文本提取指定内容复制到另一文本指定位置

A.txt内容:
123456789012=001
234567890123=002
345678901234=003
.....
B文件内容:
【宽带】
宽带账号:
宽带密码:
......
目的:(=后面的数字是机器名)根据机器名自动提取机器名=号前面12位数字复制到B文件 宽带账号:后面

求助,万分感谢

您把下面这段批处理存为setaccount.bat,与a.txt和b.txt放在同一个文件夹下,运行就行了,您试试看。
@echo off
@setlocal enabledelayedexpansion
@ren b.txt _b.txt
@for /f "tokens=1,2* delims==" %%i in (a.txt) do (
@set pcname=%%j
@set pwd=%%i
@if %computername%==!pcname! (
@for /f "delims=" %%k in (_b.txt) do (
@set ln=%%k
@if !ln!==宽带账号: (
@echo 宽带账号:%computername% >> b.txt
) else (
@if !ln!==宽带密码: (
@echo 宽带密码:!pwd! >> b.txt
) else (
@echo !ln! >> b.txt
)))))
if not exist b.txt (
@ren _b.txt b.txt
) else (
@del _b.txt /f /q >nul
)追问

试了下不行 能拜个师么 26591113我的Q

追答

您好,这段批处理在处理时自动读取了机器名判断,就是下面这句:
@if %computername%==!pcname! (
如果您测试的机器名在a.txt列表中不存在,就不会导入内容,您可以手工编辑一下a.txt试一下。我是试过的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-31
很简单的,两个for语句欠套,用=做提取文本的分隔符分析文本,两个echo写入b文件就行了
相似回答