标题: [文本处理] {已解决}批处理for循环传递字符串给指定变量 [打印本页]
作者: 旺财11k 时间: 2023-1-8 12:24 标题: {已解决}批处理for循环传递字符串给指定变量
本帖最后由 旺财11k 于 2023-1-19 19:26 编辑
- @echo off
- set devices=1
- for %%f in (adb devices) do set "devices=%%f"
- echo %devices%
- cmd /k
复制代码
怎么写才可以把adb devices输出的序列号传递给变量%devices%?萌新向大佬!们求助!!
作者: 旺财11k 时间: 2023-1-8 12:25
求助!!!!! 大佬们
作者: 77七 时间: 2023-1-8 12:58
你单独运行你获取序列号的命令,并把命令和结果发出来看看,就好写了
作者: 旺财11k 时间: 2023-1-8 13:29
回复 3# 77七
就是 adb devices 把获取到的设备序号传递给变量a就行
我cmd 输入 adb devices 就会提示
List of devices attached
d225ca7e device
作者: 77七 时间: 2023-1-8 14:52
本帖最后由 77七 于 2023-1-8 20:38 编辑
- @echo off
- for /f "tokens=1 delims= " %%a in ('adb devices ^| findstr "device"') do (
- set device=%%a
- )
- echo %device%
- pause
复制代码
试试这样行吗
作者: 旺财11k 时间: 2023-1-8 20:19
回复 5# 77七
ECHO 处于关闭状态。我的会这样
作者: 77七 时间: 2023-1-8 20:39
回复 6# 旺财11k
已修改,再试试
作者: Batcher 时间: 2023-1-9 09:12
回复 1# 旺财11k
如果5楼更新之后的代码还是不行,请执行命令:复制代码
把1.txt上传到网盘,我试试。
把命令执行结果赋值给变量,不能直接用for,而应该用for /f
参考for命令教程第18、28页:
http://bbs.bathome.net/thread-31727-1-1.html
作者: 浅暮丶千殇 时间: 2023-1-9 17:40
回复 5# 77七
借用下此楼代码,修改为- @echo off
- for /f %%a in ('adb devices ^| findstr device') do (
- set device=%%a
- )
- echo %device%
- pause
复制代码
1.for /f 默认使用空格作为分隔符, 可以不使用分隔参数
2.findstr 搜索的字符串如果没有空格,可以省略 双引号,如果 搜索的字符串含有空格,必须使用 /C:"<搜索的字符串>"
作者: 旺财11k 时间: 2023-1-19 19:26
回复 9# 浅暮丶千殇
感谢大佬 已解决
作者: 旺财11k 时间: 2023-1-19 19:26
回复 8# Batcher
感谢!!!!!已解决
作者: dos-a 时间: 2023-1-19 23:54
本帖最后由 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
延迟变量作用(百度即可 比较详细)
作者: dos-a 时间: 2023-1-20 00:04
本帖最后由 dos-a 于 2023-1-20 00:08 编辑
回复 8# Batcher
,大佬通用方法是吧
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |