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

[文本处理] {已解决}批处理for循环传递字符串给指定变量

本帖最后由 旺财11k 于 2023-1-19 19:26 编辑
  1. @echo off
  2. set devices=1
  3. for %%f in (adb devices) do set "devices=%%f"
  4. echo %devices%
  5. cmd /k
复制代码
怎么写才可以把adb devices输出的序列号传递给变量%devices%?萌新向大佬!们求助!!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 dos-a 于 2023-1-20 00:08 编辑

回复 8# Batcher

,大佬通用方法是吧

TOP

本帖最后由 dos-a 于 2023-1-20 00:23 编辑

回复 11# 旺财11k


    我的发你把,,
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1 delims= " %%a in ('adb devices') do (
set devices=%%a
)
echo !devices!
pause

delims 后 空白处是空格
setlocal enabledelayedexpansion
延迟变量作用(百度即可 比较详细)

TOP

回复 8# Batcher


    感谢!!!!!已解决

TOP

回复 9# 浅暮丶千殇


    感谢大佬 已解决

TOP

回复 5# 77七

借用下此楼代码,修改为
  1. @echo off
  2. for /f %%a in ('adb devices ^| findstr device') do (
  3.         set device=%%a
  4. )
  5. echo %device%
  6. pause
复制代码
1.for /f 默认使用空格作为分隔符, 可以不使用分隔参数
2.findstr 搜索的字符串如果没有空格,可以省略 双引号,如果 搜索的字符串含有空格,必须使用  /C:"<搜索的字符串>"
1

评分人数

    • 77七: 谢谢指点!技术 + 1

TOP

回复 1# 旺财11k


如果5楼更新之后的代码还是不行,请执行命令:
  1. adb devices > 1.txt
复制代码
把1.txt上传到网盘,我试试。

把命令执行结果赋值给变量,不能直接用for,而应该用for /f
参考for命令教程第18、28页:
http://bbs.bathome.net/thread-31727-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

回复 6# 旺财11k

已修改,再试试
bat小白,请多指教!谢谢!

TOP

回复 5# 77七


    ECHO 处于关闭状态。我的会这样

TOP

本帖最后由 77七 于 2023-1-8 20:38 编辑
  1. @echo off
  2. for /f "tokens=1 delims= " %%a in ('adb devices ^| findstr "device"') do (
  3.         set device=%%a
  4. )
  5. echo %device%
  6. pause
复制代码

试试这样行吗
bat小白,请多指教!谢谢!

TOP

回复 3# 77七


    就是 adb devices  把获取到的设备序号传递给变量a就行
我cmd  输入 adb devices 就会提示
List of devices attached
d225ca7e        device

TOP

你单独运行你获取序列号的命令,并把命令和结果发出来看看,就好写了
bat小白,请多指教!谢谢!

TOP

求助!!!!!  大佬们

TOP

返回列表