批处理从一个文本提取指定内容复制到另一文本指定位置
A.txt内容:123456789012=001234567890123=002345678901234=003.....B文件内容:【宽带】宽带账号:宽带密码:.......
A.txt内容:
123456789012=001
234567890123=002
345678901234=003
.....
B文件内容:
【宽带】
宽带账号:
宽带密码:
......
目的:(=后面的数字是机器名)根据机器名自动提取机器名=号前面12位数字复制到B文件 宽带账号:后面
求助,万分感谢 展开
123456789012=001
234567890123=002
345678901234=003
.....
B文件内容:
【宽带】
宽带账号:
宽带密码:
......
目的:(=后面的数字是机器名)根据机器名自动提取机器名=号前面12位数字复制到B文件 宽带账号:后面
求助,万分感谢 展开
2个回答
展开全部
您把下面这段批处理存为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
)
@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试一下。我是试过的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询