今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。
今天我自己第一次写了一个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脚本,一起学习一下吧。的更多相关文章
- 写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接内容的本地查询
始出处:http://www.cnblogs.com/Charltsing/p/APIViewer.html QQ:564955427,QQ群:550672198 世面上的API Viewer已经不少 ...
- 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...
- windows常用bat脚本
windows常用bat脚本 https://blog.csdn.net/longyan_csc/article/details/78737722 Windows_批处理+任务计划实现文件夹定时备份 ...
- R入门-第一次写了一个完整的时间序列分析代码
纪念一下,在心心念念想从会计本科转为数据分析师快两年后,近期终于迈出了使用R的第一步,在参考他人的例子前提下,成功写了几行代码.用成本的角度来说,省去了部门去买昂贵的数据分析软件的金钱和时间,而对自己 ...
- Windows 批处理(bat)语法大全
本文是学习bat整理的笔记,由于内容较多,建议结合右侧文章大纲查看. %~dp0[获取当前路径] %~dp0 “d”为Drive的缩写,即为驱动器,磁盘.“p”为Path缩写,即为路径,目录 cd % ...
- Windows 用bat脚本带配置启动redis,并用vb脚本使其在后台运行。
最近,在Windows上用开发PHP程序,需要用到Redis,每天要打开一个运行redis-server.exe的窗口这样比较烦,因为窗口就一直打开着,不能关闭. 所以就想着通过写脚本的方式,让他在后 ...
- windows中用bat脚本更改环境变量
机房同传了新的系统,不使用dev的话每次开机都要重新更改环境变量(其实也可以在编译命令里添加绝对路径).所以就去学习了一下用bat脚本更改path.以便每次开机可以一键更改添加环境变量 wmic en ...
- windows ping bat脚本
参考百度链接:https://zhidao.baidu.com/question/577024998.html 要求:1.从同级目录下读取iplist.txt文件内的ip/域名列表(每行一个):2.对 ...
- windows 执行bat脚本
bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...
随机推荐
- fuzz——AFL基础使用方法
最近打 ctf 的时候感觉有点遇到瓶颈,就来 fuzz 这块看看. AFL 全称为 American huzzy loop,是 Fuzzing 最高级的测试工具之一.这个工具对有源码和无源码的二进制程 ...
- HTTP缓存协议实战
一.什么是缓存 缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存.当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用.如果找不到,则再去其他数据源中 ...
- Solution -「UOJ #87」mx 的仙人掌
\(\mathcal{Description}\) Link. 给出含 \(n\) 个结点 \(m\) 条边的仙人掌图.\(q\) 次询问,每次询问给出一个点集 \(S\),求 \(S\) 内 ...
- Winds10 安装JDK8.0教程
首先下载一个jdk,可以通过这个链接下载:https://pan.baidu.com/s/1aP6SdL8UQK_C2GvALLb6Wg也可以去官网下载:https://www.oracle.com/ ...
- ajax的发展
ajax(Asynchronous Javascript and XML)异步javascrip和XMl. ajax只是一种web交互方法.在客户端(浏览器)和服务区段之间传输少量的信息.从而为用户提 ...
- mysql视图,索引
一.视图 View 视图是一个虚拟表,是sql语句的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会 ...
- 【windows 操作系统】异步
转载:https://cloud.tencent.com/developer/article/1744660 二.异步与多线程 1)基本概念 1. 并发:在操作系统中,是指一个时间段中有几个程序都处于 ...
- Map<String, String> map按key值排序
private static String buildMd5Params(Map<String, String> map) { StringBuilder result = new Str ...
- 从零开始,开发一个 Web Office 套件(7):新的问题—— Click 事件的 z-index
这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...
- ElasticSearch内部基于_version乐观锁控制机制
1.悲观锁与乐观锁机制 为控制并发问题,我们通常采用锁机制.分为悲观锁和乐观锁两种机制. 悲观锁:很悲观,所有情况都上锁.此时只有一个线程可以操作数据.具体例子为数据库中的行级锁.表级锁.读锁.写锁等 ...