是否可以批量将 adb 命令设置为变量?
Is possible to set an adb command as a variable in batch?
我试图设置一个等于 adb 命令的变量,但它不起作用,这是代码
set ten=10
set nine=9
set eight_1=8.1
set eight=8
set seven=7
set version = "adb shell getprop ro.build.version.release"
if %ten% == %version% goto :menu
if %nine% == %version% goto :menu
if %eight_1% == %version% goto :menu
if %eight% == %version% goto :menu
if %seven% == %version% goto :menu
谁能帮我解决一下?
cmd
很简单。 set
命令只是将一个变量设置为一个字符串。有两种方法可以将命令的输出捕获到变量中。一个涉及临时文件。将输出写入文件并重新读取它:
adb shell getprop ro.build.version.release >file.tmp
<file.tmp set /p "var="
echo %var%
另一个看起来有点复杂(你会习惯的)并且不使用文件:
for /f "delims=" %%a in ('adb shell getprop ro.build.version.release') do set "var=%%a"
echo %var%
两个版本都只依赖一行的命令输出(尽管都可以扩展为迭代多行)。
备注:
不要使用 set
命令在 =
周围放置空格 - 它们分别成为变量名和值的一部分。
最佳做法是使用语法 set "var=value"
(注意引号所在的位置)。
它可以防止尾随空格(在故障排除时很难发现)并节省一些 "poison characters"
出于类似原因,请使用以下 if
语法:if "%ten%" == "%version%" goto :menu
如果变量为空或包含空格,没有引号,您将收到语法错误。
我试图设置一个等于 adb 命令的变量,但它不起作用,这是代码
set ten=10
set nine=9
set eight_1=8.1
set eight=8
set seven=7
set version = "adb shell getprop ro.build.version.release"
if %ten% == %version% goto :menu
if %nine% == %version% goto :menu
if %eight_1% == %version% goto :menu
if %eight% == %version% goto :menu
if %seven% == %version% goto :menu
谁能帮我解决一下?
cmd
很简单。 set
命令只是将一个变量设置为一个字符串。有两种方法可以将命令的输出捕获到变量中。一个涉及临时文件。将输出写入文件并重新读取它:
adb shell getprop ro.build.version.release >file.tmp
<file.tmp set /p "var="
echo %var%
另一个看起来有点复杂(你会习惯的)并且不使用文件:
for /f "delims=" %%a in ('adb shell getprop ro.build.version.release') do set "var=%%a"
echo %var%
两个版本都只依赖一行的命令输出(尽管都可以扩展为迭代多行)。
备注:
不要使用 set
命令在 =
周围放置空格 - 它们分别成为变量名和值的一部分。
最佳做法是使用语法 set "var=value"
(注意引号所在的位置)。
它可以防止尾随空格(在故障排除时很难发现)并节省一些 "poison characters"
出于类似原因,请使用以下 if
语法:if "%ten%" == "%version%" goto :menu
如果变量为空或包含空格,没有引号,您将收到语法错误。