Board logo

标题: [文本处理] [已解决]批处理怎样提取第N行冒号以后的字符串并保存到文本? [打印本页]

作者: wangyangweb    时间: 2013-3-20 20:53     标题: [已解决]批处理怎样提取第N行冒号以后的字符串并保存到文本?

本帖最后由 wangyangweb 于 2013-3-21 10:18 编辑

username.txt     内容:

zhangsan
lisi
wangwu
...

假设有命令show
从username.txt中获取每个用户名作为show命令的参数,执行命令,如 show zhangsan info,其中show和info是固定模式,只有zhangsan是变量
执行  show zhangsan info 命令以后,显示内容如下:
name:zhangsan
sex:nan
age:33
birth:19800808
tel:13800138000

将第4行(如红色部分)冒号后面的内容+用户名输出保存到out.txt或excel(最好)里面,
格式:
zhangsan    19800808
lisi                19780101
....

即每执行一条show *** info命令就向输出文件写入一行固定格式记录
作者: BAT-VBS    时间: 2013-3-20 20:58

  1. @echo off
  2. (for /f %%a in (username.txt) do (
  3.     for /f "tokens=2 delims=:" %%b in ('show %%a info ^| findstr "birth:"') do (
  4.         echo %%a %%b
  5.     )
  6. ))>out.csv
复制代码

作者: BAT-VBS    时间: 2013-3-20 20:59

如果需要分成两列
  1. @echo off
  2. (for /f %%a in (username.txt) do (
  3.     for /f "tokens=2 delims=:" %%b in ('show %%a info ^| findstr "birth:"') do (
  4.         echo %%a,%%b
  5.     )
  6. ))>out.csv
复制代码

作者: wangyangweb    时间: 2013-3-21 10:20

回复 3# BAT-VBS


    很感谢你,但是没分了
作者: wangyangweb    时间: 2013-3-21 10:24

回复 3# BAT-VBS


    再求教一个问题啊
假设我的机器是A,远程服务器是B,我用telnet登陆到服务器B,然后执行show命令。

然而,我在服务器B上没有写权限,只有读取权限,请问我能不能我的机器A上执行批处理文件,运行服务器B上的show命令,

读取的username.txt和要输出的out.csv都是我的机器A上的文件?

谢谢
作者: BAT-VBS    时间: 2013-3-21 11:20

回复 5# wangyangweb


    Linux也许可以。Windows不知道。
作者: wangyangweb    时间: 2013-3-21 13:12

回复 6# BAT-VBS


    哈哈,解决了,只要将本地的username.txt和批处理文件(test.bat)共享,供服务器远程调用就能解决

Forexample:
test.bat

@echo off
(for /f %%a in (\\192.168.1.1\share\username.txt) do (
    for /f "tokens=2 delims=:" %%b in ('show username %%a info ^| findstr "birth"') do (
        echo %%a,%%b
    )
))>\\192.168.1.1\share\out.csv


服务器端执行call \\192.168.1.1\share\test.bat
作者: BAT-VBS    时间: 2013-3-21 17:16

回复 7# wangyangweb


    你不是说在服务器B上没有写权限吗,怎么设置的共享啊?
作者: wangyangweb    时间: 2013-3-21 19:46

回复 8# BAT-VBS


    192.168.1.1是客户端的IP,由客户端共享文件,服务器访问文件




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2