[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决] 请教批处理如何将多台设备得序列号,model号,系统版本打印后进行左对齐?

本帖最后由 dos-a 于 2023-4-9 15:25 编辑

如:
[1]  系统版本: 鸿蒙 2.0.0       model: VRD-W10      序列号: RCJ6R20A22000022
[2]  系统版本: andorid 12       model: 22021211RC   序列号: ad8670af
[3]  系统版本: 鸿蒙 2.0.022       model: VRD-W10      序列号: RCJ6R20A22000022
[4]  系统版本: andorid 12000      model: 22021211RC   序列号: ad8670af
[5]  系统版本: 鸿蒙 2.0.0.33       model: VRD-W10      序列号: RCJ6R20A22000022
[6]  系统版本: andorid 12       model: 22021211RC   序列号: ad8670af

这种打印后会因为使用得tab导致与上行显示结果不一致
如果我想让他们每列 左对齐我该怎么办?
如下是原bat:
  1. :a
  2. cls
  3. @echo off
  4. setlocal enabledelayedexpansion
  5. rem  输出所有设备标识
  6. echo               ╔═             ═╗
  7. echo                   已连接设备
  8. echo    ╔════════════════════════════════  ╚═             ═╝  ═════════════════════════════╗
  9. echo,
  10. set "cnt=0"
  11. for /f "skip=1 tokens=1 delims= " %%a in ('adb devices') do (
  12.     REM 获取设备model号
  13.     for /f "delims=" %%r in ('adb -s %%a shell getprop ro.product.model') do (
  14.         for /f "delims=" %%x in ("%%r") do (
  15.             set "f=%%x"
  16.         )
  17.     )
  18.     set "cv="
  19.     for /f "delims=" %%c in ('adb -s %%a shell getprop hw_sc.build.platform.version') do (
  20.         for /f "delims=" %%x in ("%%c") do (
  21.             set "cv=%%x"
  22.         )
  23.     )
  24.     if "!cv!"=="" (
  25.         REM 安卓
  26.         for /f "delims=" %%s in ('adb -s %%a shell getprop ro.build.version.release') do (
  27.             for /f "delims=" %%x in ("%%s") do (
  28.                 set "sv=%%x"
  29.             )
  30.         )
  31.         set "version=!sv!"
  32.         set "system=andorid"
  33.     ) else (
  34.         REM 鸿蒙
  35.         set "version=!cv!"
  36.         set "system=HarmonyOS"
  37.     )
  38.     set /a cnt+=1
  39. echo       [!cnt!]  系统版本: !system! !version!     model: !f!     序列号: %%a
  40. echo,
  41. )
  42. echo    ╚══════════════════════════════════════════════════════════════════════════════════╝
  43. echo.
  44. pause
  45. goto a
复制代码
运行结果:

                                      ╔═             ═╗
                                          已连接设备
   ╔════════════════════════════════  ╚═             ═╝  ═════════════════════════════╗

      [1]  系统版本: 鸿蒙 2.0.0     model: VRD-W10          序列号: RCJ6R20A22000022

      [2]  系统版本: andorid 12     model: 22021211RC       序列号: ad8670af

   ╚══════════════════════════════════════════════════════════════════════════════════╝

请按任意键继续. . .




这个是Batcher大佬在他的:
http://www.bathome.net/viewthread.php?tid=3774&from=favorites
中提到得左对齐思路


这部分是我修改后得但是结果不太行
  1. @echo off
  2. :aap
  3. setlocal enabledelayedexpansion
  4. rem  输出所有设备标识
  5. echo               ╔═             ═╗
  6. echo                   已连接设备
  7. echo    ╔════════════════════════════════  ╚═             ═╝  ═════════════════════════════╗
  8. echo,
  9. set "cnt=0"
  10. for /f "skip=1 tokens=1 delims= " %%a in ('adb devices') do (
  11.     REM 获取设备model号
  12.     for /f "delims=" %%r in ('adb -s %%a shell getprop ro.product.model') do (
  13.         for /f "delims=" %%x in ("%%r") do (
  14.             set "f=%%x"
  15.         )
  16.     )
  17.     set "cv="
  18.     for /f "delims=" %%c in ('adb -s %%a shell getprop hw_sc.build.platform.version') do (
  19.         for /f "delims=" %%x in ("%%c") do (
  20.             set "cv=%%x"
  21.         )
  22.     )
  23.     if "!cv!"=="" (
  24.         REM 安卓
  25.         for /f "delims=" %%s in ('adb -s %%a shell getprop ro.build.version.release') do (
  26.             for /f "delims=" %%x in ("%%s") do (
  27.                 set "sv=%%x"
  28.             )
  29.         )
  30.         set "version=!sv!"
  31.         set "system=andorid"
  32.     ) else (
  33.         REM 鸿蒙
  34.         set "version=!cv!"
  35.         set "system=HarmonyOS"
  36.     )
  37.     set /a cnt+=1
  38.     set "ct=    [!cnt!] "
  39.     set "xb=系统版本:!system!!version!"
  40.     set "md=model:!f!"
  41.     set "xl=序列号:%%a"
  42. for /f "delims=" %%s in ("!ct! !xb! !md! !xl!") do (
  43.     set /a n+=1&set /p=^%%s <nul
  44.     if !n!==4 set  n=0&echo .
  45. )
  46. ::echo       [!cnt!]  系统版本: !system! !version!     model: !f!     序列号: %%a
  47. echo,
  48. )
  49. echo    ╚══════════════════════════════════════════════════════════════════════════════════╝
  50. echo.
  51. pause
  52. goto aap
复制代码
修改后得代码结果图如下:

                                      ╔═             ═╗
                                          已连接设备
   ╔════════════════════════════════  ╚═             ═╝  ═════════════════════════════╗

[1]  系统版本:HarmonyOS2.0.0 model:VRD-W10 序列号:RCJ6R20A22000022
[2]  系统版本:andorid12 model:22021211RC 序列号:ad8670af
   ╚══════════════════════════════════════════════════════════════════════════════════╝

请按任意键继续. . .

求大佬助力!!!
我这边不知道为啥上传图片失败,暂时就不上图了

回复 1# dos-a


如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 dos-a 于 2023-1-16 15:39 编辑

原bat效果


如果超出长度会显示为:



今天碰巧又再次搜索到左对齐得方法
3, set/p 特殊用法 .
左对齐(注意代码中的是制表符):
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1 10 999) do (set/a n+=1&set /p=^%%i        <nul
if !n!==5 set n=0&echo.
)
pause
复制代码
结果如图:

我把这个和我得结合后未能如愿显示:

而且单行也出了问题


我需要得是这个得到对齐


其他正常显示即可

TOP

回复 1# dos-a


根据你看到的那个左对齐的方法,顶楼第二段代码第43行<左侧不应该是空格,而是制表符:
  1. set /a n+=1&set /p=^%%s <nul
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher
我试试
,感谢大佬

TOP

好像不太行

TOP

我所需要得是
下图和

这个一样

不会因为字符长度太长而超出

TOP

回复 6# dos-a


你连上那两个设备之后,单独在命令行窗口执行:
  1. adb devices > 1.txt
  2. adb -s XXX shell getprop ro.product.model > 2-1.txt
  3. adb -s YYY shell getprop ro.product.model > 2-2.txt
  4. adb -s XXX shell getprop hw_sc.build.platform.version > 3-1.txt
  5. adb -s YYY shell getprop hw_sc.build.platform.version > 3-2.txt
  6. adb -s XXX shell getprop ro.build.version.release > 4-1.txt
  7. adb -s YYY shell getprop ro.build.version.release > 4-2.txt
复制代码
把生成的这7个txt文件打包上传到网盘,我试试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher
ok

TOP

回复 8# Batcher
17:39:27
我用蓝奏浏览器分享了[adb-devices], 下载链接:https://wwp.lanzoup.com/iNLP50l59tqb  , 你可以不限速下载哦

17:39:50
提取码:gmte

TOP

回复 8# Batcher
大佬,结果如何??

TOP

回复 10# dos-a


    我打不开这个链接,换个网盘试试?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 12# Batcher


    OK

TOP

我用蓝奏浏览器分享了[adb-devices], 下载链接:https://wwp.lanzoup.com/iBVLX0l8nzmf  , 你可以不限速下载哦
应该可以了

TOP

我按照大佬你说的
echo       [!cnt!]系统版本: !system! !version!            model: !f!        序列号: %%a >>1.txt
操作后发现如果1.txt编码为utf-8时是正常对齐得,但是我将他改为gb2312后就出现了对不齐得情况
如图 ;
显示图:


utf-8:


gb2312:


1.txt文件链接【已测试可下载】:
我用蓝奏浏览器分享了[1], 下载链接:https://wwp.lanzoup.com/iH8P40mb0dbi  提取码 : 4424, 你可以不限速下载哦

TOP

返回列表