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

屏幕输出示例:
  1. Active code page: 65001
  2.         1 file(s) copied.
  3. 当前 applicationId 是: "com.daoliu.yo0507"
  4. 请输入新的 applicationId:a.b.c..
  5. 参数格式不正确, 请再次输入.
  6. 请输入新的 applicationId:a.b.cd.3fg
  7. 当前 versionCode 是: 470
  8. 请输入新的 versionCode:853e
  9. 参数格式不正确, 请再次输入.
  10. 请输入新的 versionCode:654
  11. 当前 versionName 是: "0.6.0"
  12. 请输入新的 versionName:s.35.2wg
  13. 参数格式不正确, 请再次输入.
  14. 请输入新的 versionName:2.3.56.7
  15. The syntax of the command is incorrect.
  16. The syntax of the command is incorrect.
  17. DONE
  18. Press any key to continue . . .
复制代码
  1. @echo off & setlocal enabledelayedexpansion & chcp 65001
  2. set "QDH=[a-zA-Z][0-9a-zA-Z]*"
  3. set "QDN=\.[0-9a-zA-Z][0-9a-zA-Z]*"
  4. set "quote_domain=^\"%QDH%\"$ ^\"%QDH%%QDN%\"$ ^\"%QDH%%QDN%%QDN%\"$ ^\"%QDH%%QDN%%QDN%%QDN%\"$"
  5. set "domain=%quote_domain:\"=%"
  6. set "QDDH=[0-9][0-9]*"
  7. set "QDDN=\.%QDDH%"
  8. set "quote_dot_digit=^\"%QDDH%\"$ ^\"%QDDH%%QDDN%\"$ ^\"%QDDH%%QDDN%%QDDN%\"$ ^\"%QDDH%%QDDN%%QDDN%%QDDN%\"$"
  9. set "dot_digit=%quote_dot_digit:\"=%"
  10. set "pure_digit=^%QDDH%$"
  11. call :wmic_get_timestamp YYYYMMDD_HHiiss
  12. copy /y build.txt build.BAK.%YYYYMMDD_HHiiss%.txt
  13. > build.txt cd.
  14. for /f "delims=" %%a in (build.BAK.%YYYYMMDD_HHiiss%.txt) do (
  15.     REM 过滤出目标参数行
  16.     echo;%%a|findstr /r /i "[^0-9a-zA-Z\.]applicationId [^0-9a-zA-Z\.]versionCode [^0-9a-zA-Z\.]versionName" >nul && (
  17.         REM echo;&echo;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  18.         REM echo;found target param line:&echo;
  19.         for /f "tokens=1*" %%c in ("%%a") do (
  20.             
  21.             echo;当前 %%c 是: %%d
  22.         
  23.             for %%e in (quote_domain pure_digit quote_dot_digit) do (
  24.                 set "validate_str=!%%e!"
  25.                 set "types=%%e"
  26.                 if "!types:~0,6!"=="quote_" (
  27.                     set "types=!types! !types:~6!"
  28.                 )
  29.                 echo;%%d|findstr /r /i "!validate_str!" >nul && (
  30.                     call :input_param param_val %%c !types!
  31.                 )
  32.             )
  33.             >> build.txt echo;%%c !param_val!
  34.             REM echo;++++++++++++++++ new set ++++++++++++++++
  35.             REM echo;%%c !param_val!
  36.         )
  37.     ) || (
  38.         >> build.txt echo;%%a
  39.         REM echo;%%a
  40.     )
  41. )
  42. echo;DONE
  43. pause
  44. exit
  45. :input_param var_param_val param_name validate_type no_quote_validate_type
  46. setlocal
  47. if "%~4" neq "" (
  48.     set "no_quote_validate_type= !%~4!"
  49. )
  50. :input_param_loop
  51. set /p "param_val=请输入新的 %~2:"
  52. echo;%param_val%| findstr /r /i "!%~3!!no_quote_validate_type!" >nul && (
  53.     (
  54.         endlocal
  55.         set "%~1=%param_val%"
  56.         if "%~4" neq "" (
  57.             for %%a in (%param_val%) do set "%~1="%%~a""
  58.         )
  59.         exit /b
  60.     )
  61. ) || (
  62.     echo;参数格式不正确, 请再次输入.
  63.     goto :input_param_loop
  64. )
  65. exit /b
  66. :wmic_get_timestamp YYYYMMDD_HHiiss
  67. setlocal
  68. for /f %%x in ('wmic path win32_localtime get /format:list ^| findstr "="') do (
  69.     for /f "tokens=1-2 delims==" %%a in ("%%x") do (set "_%%a=0000%%b")
  70. )
  71. (
  72.     endlocal
  73.     set "%~1=%_Year:~-4%%_Month:~-2%%_Day:~-2%_%_Hour:~-2%%_Minute:~-2%%_Second:~-2%"
  74.     exit /b
  75. )
复制代码

TOP

返回列表