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

事情原由:自己使用Java开发了一个加解密的工具。但是当把工具给别人使用的时候,别人还需要把代码编译打包,

然后还需要看一下代码里面的制定文件类型和目录,把文件放在制定的位置然后才能使用。

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

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

很有参考意义。

`

@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

`

今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。的更多相关文章

  1. 写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接内容的本地查询

    始出处:http://www.cnblogs.com/Charltsing/p/APIViewer.html QQ:564955427,QQ群:550672198 世面上的API Viewer已经不少 ...

  2. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

  3. windows常用bat脚本

    windows常用bat脚本 https://blog.csdn.net/longyan_csc/article/details/78737722 Windows_批处理+任务计划实现文件夹定时备份 ...

  4. R入门-第一次写了一个完整的时间序列分析代码

    纪念一下,在心心念念想从会计本科转为数据分析师快两年后,近期终于迈出了使用R的第一步,在参考他人的例子前提下,成功写了几行代码.用成本的角度来说,省去了部门去买昂贵的数据分析软件的金钱和时间,而对自己 ...

  5. Windows 批处理(bat)语法大全

    本文是学习bat整理的笔记,由于内容较多,建议结合右侧文章大纲查看. %~dp0[获取当前路径] %~dp0 “d”为Drive的缩写,即为驱动器,磁盘.“p”为Path缩写,即为路径,目录 cd % ...

  6. Windows 用bat脚本带配置启动redis,并用vb脚本使其在后台运行。

    最近,在Windows上用开发PHP程序,需要用到Redis,每天要打开一个运行redis-server.exe的窗口这样比较烦,因为窗口就一直打开着,不能关闭. 所以就想着通过写脚本的方式,让他在后 ...

  7. windows中用bat脚本更改环境变量

    机房同传了新的系统,不使用dev的话每次开机都要重新更改环境变量(其实也可以在编译命令里添加绝对路径).所以就去学习了一下用bat脚本更改path.以便每次开机可以一键更改添加环境变量 wmic en ...

  8. windows ping bat脚本

    参考百度链接:https://zhidao.baidu.com/question/577024998.html 要求:1.从同级目录下读取iplist.txt文件内的ip/域名列表(每行一个):2.对 ...

  9. windows 执行bat脚本

    bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...

随机推荐

  1. svn中.a文件无法上传解决方法

    项目导入后总是缺少.a文件,如shareSDK.a,libPushSDK.a,libbaidumapapi.a等 解决方法 方法一.修改SVN配置文件 通过终端直接打开配置文件: open  ~/.s ...

  2. Nginx+Tomcat 实现负载均衡 ,动静分离集群部署

    Nginx + Tomcat 实现负载均衡,动静分离集群部署 1.Nginx实现负载均衡原理 2.Nginx配置反向代理主要参数 3.实验 1.Nginx实现负载均衡原理: Nginx服务器作为前端, ...

  3. rabbitmq集群实现

    官方文档 一.环境准备 1.1 IP地址规划 1.2 配置主机域名解析 ##每个节点修改主机名 # hostnamectl set-hostname mq1.example.local # hostn ...

  4. Solution -「CF 1491H」Yuezheng Ling and Dynamic Tree

    \(\mathcal{Description}\)   Link. 做题原因:题目名.   给定一个长度 \(n-1\) 的序列 \(\{a_2,a_3,\cdots,a_n\}\),其描述了一棵 \ ...

  5. 面向对象—多态、鸭子类型(Day21)

    编程原则java具有自己的编程原则和设计模式,不能多继承.python的编程原则:1.开放封闭原则:开放是对扩展是开放的,封闭是对修改是封闭的(已经写完的代码程序是不能修改的).2.依赖倒置原则:高层 ...

  6. 黑客高端de浏览器使用秘籍

    搜索引擎已经成为上网必不可少的工具之一,聪明的黑客们发现,搜索引擎也能成为发动网络攻击的工具. Google Hacking,原指利用Google搜索引擎搜索信息来进行入侵的技术和行为,如今已不再局限 ...

  7. python中类的调用

    1 class Computer: # 创建类,类名首字母大写 2 screen = True # 类的属性 3 4 def start(self): # 创建实例方法,不要漏了 self 5 pri ...

  8. CentOS单机安装k8s并部署.NET 6程序 压测 记录

    前面部分依照CentOS单机安装k8s并部署.NET 6程序来进行,内存.cpu.centos版本一致,之前222元买的三年8M 2c4g腾讯云轻量服务器,这个教程算是写的很详细的了,基本可以一致执行 ...

  9. CSRF POST型

    实验目的 掌握POST型CSRF基础知识 实验原理 管理员点击恶意链接,密码被修改 实验内容 POST型CSRF漏洞 实验环境描述 带有CSRF漏洞的注册登录系统 实验步骤 登录密码 用户名为 roo ...

  10. [BACKUP] Visual Studio Code 配置

    0 VSCode 便携模式:https://code.visualstudio.com/docs/editor/portable#_enable-portable-mode 1. 字体 FiraCod ...