今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

今天我自己第一次写了一个Windows批处理bat脚本,备注一下

事情原由:自己使用Java开发了一个加解密的工具。但是当把工具给别人使用的时候,别人还需要把代码编译打包,
然后还需要看一下代码里面的制定文件类型和目录,把文件放在制定的位置然后才能使用。

所以,我是不是可以写一个自动化脚本来实现这些麻烦的步骤呢?所有就有了如下脚本。

这里记录一下, 是给自己有一个参考,里面的大量的语法和结构都是自己查了资料之后才摸索出来的。
很有参考意义。

Copy
@echo off @rem #生活 @rem @rem Java环境变量配置 和 字符编码集配置 @rem  @rem #生活 setlocal chcp 936 2>nul >nul set java_exe=java.exe @rem #生活 @rem @rem 自动识别jar的最新版本号 @rem @rem #生活 rem Find the highest version .jar available in the same directory as the script setlocal EnableDelayedExpansion set BASENAME=RsaDec_ pushd "%~dp0" if exist RsaDec.jar (     set BASENAME=RsaDec     goto skipversioned ) set max=0 for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB :skipversioned @REM @echo "%~dp0%BASENAME%%max%.jar" is running popd @rem #生活 @rem @rem 参数配置  @rem 1. 不传任何参数,直接运行 (直接运行的前提是,获取到) @rem 2. 保留参数能力,默认参数做到自动识别和匹配 (先对三个参数取默认值) @REM  参数1:sourceFile : 默认当前目录的或者子目录的 .lic文件 @REM  参数2:targetFile : 默认应该为 对应.lic 文件的文件名 @REM  参数3:privateKeyFile :私钥默认为 privatekey.txt  @rem #生活 IF "%1" equ "/?" goto showhelp IF "%1" equ "--help" goto showhelp @rem 第一步:请输入获取到的.lic文件名称,如 authorized.lic,如果不和bat文件在同一目录,请输入全路径,如:D:\license\authorized.lic @REM set sourceFile=authorized.lic IF "%1" neq "" set sourceFile=%1 @rem 第二步:请输入解压后目标文件的名称,如 authorized.zip,如果不和bat文件在同一目录,请输入全路径,如:D:\license\authorized.zip @REM set targetFile=authorized.zip IF "%2" neq ""  set targetFile=%2 @rem 第三步:请输入存放私钥的文件的名称,如 privatekey.txt,如果不和bat文件在同一目录,请输入全路径,如:D:\license\privatekey.txt set privateKeyFile=privatekey.txt IF "%3" neq "" set privateKeyFile=%3  IF "%3" neq "" goto load @REM 循环遍历,当前目录以及子目录中所有的.lic  for /r %%i in (*.lic) do (      set sourceFile=%%i     @REM @echo !sourceFile! is being decrypted.     set targetFile=%%~pni.zip     call:load ) set /a fail = %total%-%success% @echo. @echo Run over. total:%total% ,success:%success% ,fail:%fail% setlocal DisableDelayedExpansion cmd.exe @rem #生活 @rem @rem 执行 jar包 -Duser.language=ch -Dfile.encoding=UTF8  @rem @rem #生活 :load %java_exe%  -jar "%~dp0%BASENAME%%max%.jar" "%sourceFile%" "%targetFile%" "%privateKeyFile%"  if "%ERRORLEVEL%" == "0" ( @echo Decrypted to "%targetFile%". set /a success + =1 set /a total + =1 goto over ) else ( @echo "%sourceFile%" Decryption failed. set /a total + =1 ) :showhelp @echo help message:共有三个参数可以选择性输入 @echo @1:set sourceFile=authorized.lic  :请输入获取到的.lic文件名称,如 authorized.lic, 如果不和bat文件在同一目录,请输入全路径,如:D:\license\authorized.lic @echo @2:set targetFile=authorized.zip  :请输入解压后目标文件的名称,如 authorized.zip, 如果不和bat文件在同一目录,请输入全路径,如:D:\license\authorized.zip @echo @3:set privateKeyFile=privatekey.txt  :请输入存放私钥的文件的名称,如 privatekey.txt, 如果不和bat文件在同一目录,请输入全路径,如:D:\license\privatekey.txt :over
posted @   dawa大娃bigbaby  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示