找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24490|回复: 6

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

[复制链接]
发表于 2013-12-26 18:06:40 | 显示全部楼层 |阅读模式
A.txt文本内容:
111111111---001
222222222---002
333333333---003
444444444---004
B.txt文本内容:
宽带账号:
宽带密码:
宽带自动登录:真
我想知道能不能提示手动输入001 002 003 后自动复制A文本里面---前面的内容到 B文本宽带账号:后面
发表于 2013-12-26 19:24:35 | 显示全部楼层
本帖最后由 1270697389 于 2013-12-26 19:25 编辑

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p m=输入密码:
  4. for /f "tokens=1-2 delims=-" %%i in (a.txt) do (
  5.    
  6. if /i %%j==!m! (
  7. echo,宽带账号:%%i>b.txt
  8. echo,宽带密码:%%j>>b.txt
  9. echo,宽带自动登录:真>>b.txt
  10. )
  11. )
  12. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
sjl2002 + 1 好人

查看全部评分

 楼主| 发表于 2014-1-2 14:24:16 | 显示全部楼层
回复 2# 1270697389


    试了下能提取 可是你理解错意思了,后面那个001代表的是机器号 不是密码 。还是要感谢你
 楼主| 发表于 2014-1-2 14:29:26 | 显示全部楼层
@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
)




帮我看看问题出在哪了
 楼主| 发表于 2014-1-2 15:54:00 | 显示全部楼层
还有个问题 如果A.txt文件变成这样格式:
001
12345678454
002
12313231333
003
123132313213
004
1231321313213
.........
应该怎么写。
发表于 2014-1-2 19:00:10 | 显示全部楼层

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a r=0
  4. set /p m=输入密码:
  5. for /f "tokens=1-2 delims=-" %%i in (a.txt) do (
  6. set /a r+=1  
  7. setlocal enabledelayedexpansion
  8. if /i %%i==!m! (
  9. set /a k=!r!+1
  10. echo,宽带密码:%%i
  11. )
  12. if /i !r!==!k! (
  13. echo 宽带账号:%%i
  14. )
  15. )
  16. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
sjl2002 + 1 你写的只是显示,没有写入到另外一个文件, ...

查看全部评分

发表于 2014-1-4 17:38:09 | 显示全部楼层
1270697389 发表于 2014-1-2 19:00

  1.     @echo off
  2. setlocal enabledelayedexpansion
  3. set /a r=0
  4. set /p m=输入密码:
  5. for /f "tokens=1-2 delims=-" %%i in (a.txt) do (
  6. set /a r+=1  
  7. setlocal enabledelayedexpansion
  8. if /i %%i==!m! (
  9. set /a k=!r!+1
  10. echo,宽带密码:%%i>>b.txt
  11. )
  12. if /i !r!==!k! (
  13. echo 宽带账号:%%i>>b.txt
  14. )
  15. )
  16. pause
复制代码
加上就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 21:22 , Processed in 0.031591 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表