记录一些w常用的命令(Windows cmd, linux, adb)

常用的bat命令

    • 背景
    • windows普通bat命令
      • 字符串查找
      • 字符串截取
      • 其他简单命令
      • 附上我这次的卸载脚本,有删除自身文件夹,删除注册表,删除服务,卸载dll等
    • ADB命令
    • Linux命令

背景

最近这段时间工作中用了一些之前接触很少的Windows命令,所以写一个博客记录一下,有windows的纯bat命令,另外附加一点adb命令。

windows普通bat命令

字符串查找

这个地方是直接借用一个网友的一个方法体,本来我需求是做字符串截取,但是截取之前要先获取索引,这个方法帮了我许多。


:: 下面这一段是一个方法
:getSubIndex
setlocal enabledelayedexpansion
:strLen_Loop
   set /A len+=1
   set /A len1+=0
   set /A num=len-1
   ::判断传入第二个参数要查找的字符是否已经遍历到了结尾,如果结尾了就说明匹配到了
   if not "!%2:~%len1%!"=="" (
   ::判断第一个传入的字符串是否已经遍历到了结尾
   if not "!%1:~%num%!"=="" (
        if not "!%2:~%len1%!"=="" (
            if "!%1:~%num%,1!"=="!%2:~%len1%,1!" (
            set /A len1=len1+1
            ) else (
                set /A len1=0
            )
             goto :strLen_Loop
        ) else (
              endlocal & set %3=%num%
            )
        )
    ) else (
        endlocal & set %3=%num%
    )
exit /b

字符串截取

从上一节获取到索引之后,开始做截取:目标是截取字符串中的那个绝对路径

@Echo off 
::启用命令扩展
setlocal enabledelayedexpansion
::设置获取指定字符串中第一个匹配字符串中最后一位的索引
::例:设置为str2为is,则获取第一个is中s所在的位置,索引从1开始
set str1=    REG_SZ    C:\Windows\System32\ElevocUAPO.dll 
set str2=C:
set str3=.dll
::调用这个方法,传入字符串str1和要查找的字符串str2,str3。indexFirst,indexEnd是它的返回值
call :getSubIndex str1 str2 indexFirst
call :getSubIndex str1 str3 indexEnd

if "%indexFirst%"=="" ( 
    echo "C: not find" 
	
)else (
    echo "C: start Index is %indexFirst%" 
)

if "%indexEnd%"=="" ( 
    echo "not find" 
)else (
    echo .dll start Index is %indexEnd%
)

set /a indexFirstInt= %indexFirst%-2
set /a indexEndInt= %indexEnd%+0
echo %indexFirstInt%
echo "!str1:~%indexFirstInt%,%indexEndInt%!"

pause

倒数第二句我要着重讲一下,echo “!str1:~%indexFirstInt%,%indexEndInt%!”,一般来说,bat这种命令中%xxx%就表示引用这个变量(类似jsp的<% xxx %>),我在网上找的字符串截取是这样的:echo %str1:~1,5%,截取1到5,因为外层已经包了一层%%了,所以我直接把变量塞进去,根本不行,然后从网友的方法(getIndex:if not “!%2:~%len1%!”=="" )中发现外面可以包一层!!,然后才得出这个式子,中间还试图把str1也包一下%%,但是那样是不正确的结果,所以是现在的式子。(絮絮叨叨式记录心路历程)

其他简单命令

cd dir 跳转某目录
D:/F:  切换其他盘目录
dir 列出这个目录下的东西(类似linux的ls)

附上我这次的卸载脚本,有删除自身文件夹,删除注册表,删除服务,卸载dll等

防止删除后以后不知道内容,备份以供下次参考

:: require admin
@echo off  
net.exe session 1>NUL 2>NUL && (
    goto gotAdmin
) || (
    goto UACPrompt
)
     
:UACPrompt  
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" 
    "%temp%\getadmin.vbs" 
    exit  
   
:gotAdmin  
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )  
:begin


echo==============================================================
echo=
echo         start uninstall
echo=
echo==============================================================

set INSTALL_HOME=%cd%
echo %INSTALL_HOME%



echo========================================
echo=
echo   stop App: Game Assistance
echo=
echo========================================
taskkill /f /im GameAssistanceIntelStyle.exe





echo========================================
echo=
echo   uninstall Service: HandleEndpointService
echo=
echo========================================
net stop HandleEndpointService
sc delete HandleEndpointService





echo========================================
echo=
echo   delete regedit(Current Version下还没删除)
echo=
echo========================================
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Elevoc







echo========================================
echo=
echo   delete files this dir
echo=
echo========================================
echo %~dp0
rd/s/q %~dp0
:: delete myself
del %0


:: apo files delete and revert
echo========================================
echo=
echo   unregister  elevoc dll
echo=
echo========================================

cd /d %~dp0
set b=%cd%

start /wait regsvr32 /u /s %b%\Downlink\ElevocDAPO.dll   && regsvr32 /u /s %b%\Uplink\ElevocUAPO.dll 

IF ERRORLEVEL 1 (
	echo regsvr32 Elevoc error or not exist
) ELSE (
	echo regsvr32 Elevoc succeed
)
pause

ADB命令

凭记忆写一些,以防以后忘记

:: 进入linux模式,可以用linux的命令,类似ls,rm之类的
adb  shell
::向安卓设备输入,单引号里面的内容
adb shell "input text '' "
:: 按键(具体的键可以百度查找:HOME, POWER,BACK之类的)
adb shell input keyevent KEYCODE_POWER

:: 安卓build的properties
adb shell setprop ennable.xxx.xxx = 0
:: 权限,读写和root
adb root
adb remount
:: 给手机发送文件
adb push F:/sss/xxx.apk /system/app/xxx/
:: 删除手机里文件
adb shell rm /system/app/xxx.apk
:: 安装
adb install xxx.apk
:: 日志控制台以及输出到文件内
adb logcat |findstr "XXXX"
adb logcat -d -s xxxx -V -long *:V>.\\logcat.log
adb logcat >.\\logcat.log
::清除logcat
adb logcat -c

::关机,重启
adb shutdown
adb reboot

Linux命令

这个普通命令没有写的必要,日常中常用的一些其他命令记在了另外一个电脑中,也不多,下次学习之后继续来这里做笔记。

你可能感兴趣的:(日常笔记)