BAT脚本接收输入数字

寻技术 其他编程 2023年07月12日 86

bat编程,为什么if语句中接收不到输入(set /p)的内容

1.使用延迟变量:setlocal EnableDelayedExpansion

2.变量名不是用百分号而是用感叹号来表示的:  adb shell dumpsys procstats --hours !input_time!

原始脚本参考:

@echo off
@echo memory infomation
setlocal EnableDelayedExpansion
title 内存信息
if not exist "D:\cpu_memory_log\" md "D:\cpu_memory_log\"
set time_hh=%time:~0,2%
if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%)
set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2%
echo *************************************************************
echo *                                           *      
echo *                   打印内存信息           *
echo *                   2022年01月19日                *
echo *                   作者:三火哥                  *
echo *                                           *
:while
echo *************************************************************
echo    0:打印所有进程内存
echo    1:打印导航内存信息
echo    2:打印surfaceflinger内存信息
echo    3:打印音乐内存信息
echo    4:打印evsrenderengine内存信息
echo    5:打印语音内存信息
echo    6:打印dashboard内存信息
echo    7:打印dashboard的unity内存信息
echo    8:打印智能灯光内存信息
echo    9:打印radio内存信息
echo    10:打印智能驾驶内存信息
echo    11:打印舒适太空仓内存信息
echo    12:打印蓝牙电话内存信息
echo    13:打印renderservice内存信息
echo    14:打印free内存信息
echo    15:打印高德公版内存信息
echo    16:打印各个进程的最小/平均/最大内存信息
 
set/p input_number=请输入:
if %input_number% == 0 ( 
  echo 打印所有内存
  adb shell dumpsys meminfo
) else if %input_number% == 1 ( 
  echo 打印导航内存信息
  adb shell dumpsys meminfo "$(pidof cn.loopon.app.navi)" 
) else if %input_number% == 2 ( 
  echo 打印surfaceflinger内存信息
  adb shell dumpsys meminfo "$(pidof surfaceflinger)"
) else if %input_number% == 3 ( 
  echo 打印音乐内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.music)"
) else if %input_number% == 4 ( 
  echo 打印引擎内存信息
  adb shell dumpsys meminfo "$(pidof evsrenderengine)"
) else if %input_number% == 5 ( 
  echo 打印语音内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.ifly)"
) else if %input_number% == 6 ( 
  echo 打印dashboard内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.dashboard)"
) else if %input_number% == 7 ( 
  echo 打印dashboard的unity内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.dashboard:unity)"
)else if %input_number% == 8 ( 
  echo 打印智能灯光内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.smartlights)"
) else if %input_number% == 9 ( 
  echo 打印radio内存信息
  adb shell dumpsys meminfo "$(pidof com.oushang.radio)"
) else if %input_number% == 10 ( 
  echo 打印智能驾驶内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.eaglepilot)"
) else if %input_number% == 11 ( 
  echo 打印舒适太空仓内存信息
  adb shell dumpsys meminfo "$(pidof com.os.airconditioner)"
) else if %input_number% == 12 ( 
  echo 打印蓝牙电话内存信息
  adb shell dumpsys meminfo "$(pidof com.chinatsp.phone)"
) else if %input_number% == 13 ( 
  echo 打印蓝牙电话内存信息
  adb shell dumpsys meminfo "$(pidof video.evs.camera:renderservice)"
) else if %input_number% == 14 ( 
  echo 打印free内存信息
  adb shell free -m
) else if %input_number% == 15 (
  echo 打印高德公版内存信息
  adb shell dumpsys meminfo "$(pidof com.autonavi.amapauto)"
) else if %input_number% == 16 (
  echo 打印各个进程的最小/平均/最大内存信息
  set /p input_time=请输入获取多长时间的内存:
  adb shell dumpsys procstats --hours !input_time!
 
)else ( 
  echo 输入数据不对
)
@REM loop 
@GOTO while
:wend
 
@PAUSE 
 
关闭

用微信“扫一扫”