无忧启动论坛

标题: 批处理代码合并加工处理 [打印本页]

作者: shimeng0624    时间: 2022-9-9 16:20
标题: 批处理代码合并加工处理
因有两个批处理代码需要合并成一个,并需要修改一下展示格式,最终归置到一个TXT文档,以当前有线IP地址命名TXT文档文件名,没有有线网卡的无线用户以无线IP命名。

需要修改的代码
@echo off & setlocal enabledelayedexpansion  
echo     =-----------------------------------------=
echo     =  本BAT只列出一个有线和一个无线的IP信息  =
echo     =           读取信息请耐心等待            =
echo     =-----------------------------------------=
echo.
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "以太网:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
)
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "WLAN:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set WIP=%%i
)
for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i ?

echo ===================================================  >%tmp%\ip-mac.txt
echo 当前时间:%DATE%  >>%tmp%\ip-mac.txt
echo ===================================================  >>%tmp%\ip-mac.txt
echo 本机用户名为:%COMPUTERNAME% >>%tmp%\ip-mac.txt
echo 本机有线IP为:%LIP% >>%tmp%\ip-mac.txt
echo 本机无线IP为:%WIP% >>%tmp%\ip-mac.txt
::echo 本机首选IP为:%ip% >>%tmp%\ip-mac.txt
echo 本机物理地址: >>%tmp%\ip-mac.txt
echo ===================================================
for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
"..-..-..-..-..-.."') do (
    echo %%i %%j  >>%tmp%\ip-mac.txt
)
echo ===================================================  >>%tmp%\ip-mac.txt
ipconfig | findstr /i "以太网 无线 IPv4">>%tmp%\ip-mac.txt

Start %tmp%\ip-mac.txt


修改后运行展示的最终样式
===================================================  
当前时间:2022/09/09 周五  
===================================================  
本机用户名为:PC-20211008YH
===================================================
本机有线IP为:0.0.0.0
本机物理地址MAC:AA-BB-CC-DD-EE-FF
===================================================
本机有线掩码:1.1.1.1
本机有线网关:2.2.2.2
===================================================
本机无线IP为:3.3.3.3
无线物理地址MAC:AA-BB-CC-DD-EE-FF
===================================================


上述修改后的代码需要与下面这个代码进行合并成一个批处理,并保存为TXT文档,以IP地址命名TXT文件名。
@echo off&Setlocal EnableDelayedExpansion                  
cd /d %~dp0
for /f "tokens=7* delims=\" %%i in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') do (
    echo 当前扫描信息: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i
    reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i" reg.$ >nul
    for /f "delims=" %%j in ('type reg.$ ^| findstr /i /c:"DisplayName" 2^>nul') do (
        set DN=%%~j
        set DN=!DN:"=!
        set !DN!
    )
    for /f "delims=" %%k in ('type reg.$ ^| findstr /i /c:"InstallLocation" 2^>nul') do (
        set IL=%%~k
        set IL=!IL:"=!
        set IL=!IL:\\=\!
        set !IL!
    )
    if not defined DisplayName set DisplayName=没有信息。
    if not defined InstallLocation set InstallLocation=没有信息。
    (echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    echo  注册表值: %%~i
    echo  软件名称: !DisplayName!
    echo  安装路径: !InstallLocation!
    echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    echo,)>>applist.txt
    set DisplayName=&set InstallLocation=&del reg.$
)
pause




作者: 9527sss    时间: 2022-9-9 20:45
谢谢分享,
作者: ldg_2    时间: 2022-9-9 22:30
学习一下
作者: szwp    时间: 2022-9-10 10:42
有线有MAC,IP全为0,会有重复文件。
作者: geciwang    时间: 2022-9-12 15:19
感谢分享
作者: shimeng0624    时间: 2022-9-13 08:22
szwp 发表于 2022-9-10 10:42
有线有MAC,IP全为0,会有重复文件。

请问上面的代码,如果按照要求,有没有什么办法能解决一下,谢谢。
作者: szwp    时间: 2022-9-13 08:29
shimeng0624 发表于 2022-9-13 08:22
请问上面的代码,如果按照要求,有没有什么办法能解决一下,谢谢。

要生成0.0.0.0.txt?
作者: holley2008    时间: 2022-9-13 09:24
本帖最后由 holley2008 于 2022-9-15 15:49 编辑

没搞懂你的意思,简单合并就这样

  1. @echo off & setlocal enabledelayedexpansion  
  2. echo     =-----------------------------------------=
  3. echo     =  本BAT只列出一个有线和一个无线的IP信息  =
  4. echo     =           读取信息请耐心等待            =
  5. echo     =-----------------------------------------=
  6. echo.
  7. for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "以太网:"') do (
  8.     nbtstat -S | more +%%i >$
  9.     set /p Str=<$
  10.     del $
  11.     for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
  12. )
  13. for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "WLAN:"') do (
  14.     nbtstat -S | more +%%i >$
  15.     set /p Str=<$
  16.     del $
  17.     for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set WIP=%%i
  18. )
  19. for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i  

  20. echo ===================================================  >ip-mac.txt
  21. echo 当前时间:%DATE%  >>ip-mac.txt
  22. echo ===================================================  >>ip-mac.txt
  23. echo 本机用户名为:%COMPUTERNAME% >>ip-mac.txt
  24. echo ===================================================  >>ip-mac.txt
  25. echo 本机有线IP为:%LIP% >>ip-mac.txt
  26. echo 本机无线IP为:%WIP% >>ip-mac.txt
  27. ::echo 本机首选IP为:%ip% >>ip-mac.txt
  28. echo 本机物理地址: >>ip-mac.txt
  29. echo ===================================================
  30. for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
  31. "..-..-..-..-..-.."') do (
  32.     echo %%i %%j  >>ip-mac.txt
  33. )
  34. echo ===================================================  >>ip-mac.txt
  35. ipconfig | findstr /i "以太网 无线 IPv4">>ip-mac.txt
  36. echo ===================================================  >>ip-mac.txt
  37. echo =====本机已安装软件信息===================================  >>ip-mac.txt
  38. echo ===================================================  >>ip-mac.txt
  39. cd /d %~dp0
  40. for /f "tokens=7* delims=" %%i in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') do (
  41.     echo 当前扫描信息: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i
  42.     reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%~i" reg.$ >nul
  43.     for /f "delims=" %%j in ('type reg.$ ^| findstr /i /c:"DisplayName" 2^>nul') do (
  44.         set DN=%%~j
  45.         set DN=!DN:"=!
  46.         set !DN!
  47.     )
  48.     for /f "delims=" %%k in ('type reg.$ ^| findstr /i /c:"InstallLocation" 2^>nul') do (
  49.         set IL=%%~k
  50.         set IL=!IL:"=!
  51.         set IL=!IL:\\=\!
  52.         set !IL!
  53.     )
  54.     if not defined DisplayName set DisplayName=没有信息。
  55.     if not defined InstallLocation set InstallLocation=没有信息。
  56.     (echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  57.     echo  注册表值: %%~i
  58.     echo  软件名称: !DisplayName!
  59.     echo  安装路径: !InstallLocation!
  60.     echo  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  61.     echo,)>>ip-mac.txt
  62.     set DisplayName=&set InstallLocation=&del reg.$
  63. )

  64. Start ip-mac.txt
复制代码



作者: shimeng0624    时间: 2022-9-13 11:32
szwp 发表于 2022-9-13 08:29
要生成0.0.0.0.txt?

文件便于区分,生成当前电脑IP文件名,比如生成192-168-1-110,分隔符号不限制。
作者: holley2008    时间: 2022-9-13 18:51
holley2008 发表于 2022-9-13 09:24
没搞懂你的意思,简单合并就这样

那就有可能是你的软件列表在这个地方:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
作者: 创新科技2015    时间: 2022-9-13 19:00
谢谢分享
作者: shimeng0624    时间: 2022-9-14 17:11
holley2008 发表于 2022-9-13 18:51
那就有可能是你的软件列表在这个地方:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion%u ...

其实你分别运行一下这两个批处理,就知道了,单独运行没有问题,只是我想合并成一个操作起来更方便。
作者: holley2008    时间: 2022-9-14 18:50
shimeng0624 发表于 2022-9-14 17:11
其实你分别运行一下这两个批处理,就知道了,单独运行没有问题,只是我想合并成一个操作起来更方便。

用我合成的这段 我win10专业版 获取正常
作者: szwp    时间: 2022-9-14 19:25
文件名要4个0,还是要4个3?
作者: shimeng0624    时间: 2022-9-15 08:57
szwp 发表于 2022-9-14 19:25
文件名要4个0,还是要4个3?

文件名希望能依IP地址命名
作者: shimeng0624    时间: 2022-9-15 08:59
holley2008 发表于 2022-9-14 18:50
用我合成的这段 我win10专业版 获取正常

我的LTSC版运行后就下面这些信息,没有软件列表信息。也没有保存,只是直接打开了文件。
===================================================  
当前时间:2022/09/15 周四  
===================================================  
本机用户名为:PC-20211008YH
===================================================  
本机有线IP为:172.16.53.38
本机无线IP为:
本机物理地址:
"以太网" "FC-34-97-BC-98-A3"  
"VMware Network Adapter VMnet1" "00-50-56-C0-00-01"  
"VMware Network Adapter VMnet8" "00-50-56-C0-00-08"  
"WLAN 2" "3C-46-D8-6A-BF-79"  
===================================================  
无线局域网适配器 WLAN 2:
无线局域网适配器 本地连接* 11:
无线局域网适配器 本地连接* 12:
以太网适配器 以太网:
   IPv4 地址 . . . . . . . . . . . . : 172.16.53.38
以太网适配器 VMware Network Adapter VMnet1:
   IPv4 地址 . . . . . . . . . . . . : 192.168.136.1
以太网适配器 VMware Network Adapter VMnet8:
   IPv4 地址 . . . . . . . . . . . . : 192.168.163.1
===================================================  
=====本机已安装软件信息===================================  
===================================================  


作者: holley2008    时间: 2022-9-15 15:52
shimeng0624 发表于 2022-9-15 08:59
我的LTSC版运行后就下面这些信息,没有软件列表信息。也没有保存,只是直接打开了文件。
============== ...

刚试了下,好像粘贴出来确实有问题,直接附件了。

导出已安装软件列表a.zip

1.14 KB, 下载次数: 26, 下载积分: 无忧币 -2


作者: shimeng0624    时间: 2022-9-16 08:06
holley2008 发表于 2022-9-15 15:52
刚试了下,好像粘贴出来确实有问题,直接附件了。

感谢,附件基本没有问题,要是能再优化一下就更好了。文件命名要是能以获取到的IP命名就更好了,电脑太多了,一个个去运行,然后一个个改名有点太难了。
作者: holley2008    时间: 2022-9-16 09:12
shimeng0624 发表于 2022-9-16 08:06
感谢,附件基本没有问题,要是能再优化一下就更好了。文件命名要是能以获取到的IP命名就更好了,电脑太多 ...

脚本里的ip-mac.txt替换成!LIP!.txt就可以了
作者: shimeng0624    时间: 2022-9-16 16:04
holley2008 发表于 2022-9-16 09:12
脚本里的ip-mac.txt替换成!LIP!.txt就可以了

感谢,目前 可以了。
作者: llrrqq    时间: 2022-9-20 08:51
谢谢分享
作者: liming3    时间: 2022-10-24 10:10
学习了
作者: fs9999    时间: 2022-10-24 20:24
好复杂的样子
作者: nowayer    时间: 2023-11-22 14:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: lotus136    时间: 2023-11-22 19:41
研究研究看看
作者: nowayer    时间: 2023-11-24 01:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: tfa001    时间: 2023-11-29 12:51
学习,感谢分享!
作者: 13851855007    时间: 2023-11-30 16:13
感谢分享,谢谢!
作者: zzzlllxyt    时间: 2023-12-11 15:57
学习一下
作者: kevin2023    时间: 2023-12-11 16:50
支持原创教程
作者: aaaoooenenen    时间: 2024-1-19 18:11
感谢分享,学习了
作者: yinchilang1    时间: 2024-2-22 20:32

感谢楼主分享!!




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3