Board logo

标题: [文本处理] [已解决]批处理怎样把系统信息横排输出 [打印本页]

作者: testest    时间: 2020-3-30 17:46     标题: [已解决]批处理怎样把系统信息横排输出

本帖最后由 testest 于 2020-4-8 10:57 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do echo 制造商:%%~a >>d:\mac.csv
  3. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do echo 电脑型号:%%~a >>d:\mac.csv
  4. for /f "tokens=2 delims==" %%a in ('wmic os get caption /value ^| findstr /i "caption"') do echo 操作系统:%%~a >>d:\mac.csv
复制代码
写了一个读取系统信息的程序,生成mac.csv,可是生成的结果是竖排的,可否横排,各位老大帮忙,谢谢~
如下:
制造商  电脑型号 操作系统
...         ...         ...
各占一列
作者: wujunkai    时间: 2020-3-30 18:25

回复 1# testest
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 制造商 电脑型号 操作系统>mac.csv
  3. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do set "value=%%~a"
  4. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do set "value=%value% %%~a"
  5. for /f "tokens=2 delims==" %%a in ('wmic os get caption /value ^| findstr /i "caption"') do set "value=%value% %%~a"
  6. echo %value%>>mac.csv
  7. pause
复制代码
不知道为什么,我好像没法把他写到D:\mac.csv,只能用相对路径了。。。
请自行解决
作者: testest    时间: 2020-3-30 19:35

回复 2# wujunkai
不好意思,我没说清楚,可否在生成的excel表格中按ABC排列呢?
             A            B               C
1      制造商    电脑型号     操作系统
作者: wujunkai    时间: 2020-3-30 19:40

回复 3# testest
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 制造商,电脑型号,操作系统>mac.csv
  3. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do set "value=%%~a"
  4. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do set "value=%value%,%%~a"
  5. for /f "tokens=2 delims==" %%a in ('wmic os get caption /value ^| findstr /i "caption"') do set "value=%value%,%%~a"
  6. echo %value%>>mac.csv
  7. pause
复制代码

作者: testest    时间: 2020-3-30 20:38

回复 4# wujunkai
  1. for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
  2. "..-..-..-..-..-.."') do (
  3.     echo %%i %%j
  4. )
复制代码
再加个物理地址呢
作者: wujunkai    时间: 2020-3-30 20:45

本帖最后由 wujunkai 于 2020-3-31 08:00 编辑

回复 5# testest


    我这里有三个,不怎么知道做
  1. "无线网络连接" "balabalabala"
  2. "本地连接" "balabalabala"
  3. "Bluetooth 网络连接" "balabalabala"
复制代码
给出一个近似的解决方案。
  1. @echo off & setlocal enabledelayedexpansion
  2. set "type=制造商,电脑型号,操作系统"
  3. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do set "value=%%~a"
  4. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do set "value=%value%,%%~a"
  5. for /f "tokens=2 delims==" %%a in ('wmic os get caption /value ^| findstr /i "caption"') do set "value=%value%,%%~a"
  6. for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr "..-..-..-..-..-.."') do (
  7.     set type=!type!,%%i
  8.     set value=!value!,%%j
  9. )
  10. echo %type%>mac.csv
  11. echo %value%>>mac.csv
  12. pause
复制代码

接下来,请仔细阅读代码,自行修改。(别告诉我你不会csv格式)


作者: testest    时间: 2020-3-31 18:17

本帖最后由 testest 于 2020-3-31 18:19 编辑
回复  testest


    我这里有三个,不怎么知道做给出一个近似的解决方案。接下来,请仔细阅读代码,自 ...
wujunkai 发表于 2020-3-30 20:45



    太帅了,可否把
"无线网络连接" "balabalabala"
"本地连接" "balabalabala"
"Bluetooth 网络连接" "balabalabala"
放在一个表格里
如:            A            B               C
1             制造商     电脑型号        MAC
                                               "无线网络连接" "balabalabala"
                                               "本地连接" "balabalabala"
                                               "Bluetooth 网络连接" "balabalabala"
2             ....          ....              ...
作者: wujunkai    时间: 2020-3-31 19:46

回复 7# testest


  我在这里说一下代码的原理吧。
  首先,设置type和value两个变量,tpye储存A行的数据,value储存B行的数据。
      然后,在程序的主要部分慢慢地将数据加入type和value。
  最后,输出type和value的值。
  所以,接下来的需求请自行解决。
作者: testest    时间: 2020-4-1 10:05

回复 8# wujunkai

好的,谢谢你
作者: testest    时间: 2020-4-1 22:51

本帖最后由 testest 于 2020-4-1 22:53 编辑

回复 8# wujunkai
  1. @echo off & setlocal enabledelayedexpansion
  2. if  1  lss  2   (
  3. set "type=制造商,电脑型号,操作系统"
  4. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Vendor /value ^| findstr /i "Vendor"') do set "value=%%~a"
  5. for /f "tokens=2 delims==" %%a in ('wmic csproduct get Name /value ^| findstr /i "Name"') do set "value=%value%,%%~a"
  6. for /f "tokens=2 delims==" %%a in ('wmic os get caption /value ^| findstr /i "caption"') do set "value=%value%,%%~a"
  7. for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr "..-..-..-..-..-.."') do (
  8.     set type=!type!,%%i
  9.     set value=!value!,%%j
  10. )
  11. echo %type%>mac.csv
  12. echo %value%>>mac.csv
  13. ) else (
  14. echo ok
  15. )
  16. pause
复制代码
在问问,如果加了判断语句,为啥得到的文档里头只显示
ECHO 处于关闭状态。
ECHO 处于关闭状态。

作者: wujunkai    时间: 2020-4-2 07:11

回复 10# testest


    这个是延时变量的问题,把里面所有的%balabala%改成!balabala!就可以了




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