批处理应用

@echo off

set name=%~nx0
set name=%name:.bat=%

echo ====================================
@echo 生成考勤文件   

rem  "%str%"==""  有空字符会报错,应改为  [%1]==[]
rem 1、判断是否为拖拽方式打开
if [%1]==[] (  
	echo ====================================
	rem jump point  (跳转点)
	:loop 
 	set /p fileName=请将需要处理的EXCEL拖拽到此窗口,并按回车键: 
	goto start
) else (
	rem 2、以拖拽的方式获取文件全路径 
	set fileName=%~1
	echo ==================================== 
)

:start
rem 3、如果输入为空就重新拖拽,不存在也是一样
rem  兼容替换
set tempFileName=%fileName: =hello%
rem  tempFileName里面只包含 =hello 说明fileName为空值
if  "%tempFileName%"==" =hello" (  
	goto loop
)  
 
rem 4、设置要处理人的姓名
set name=%~nx0
rem 5、处理的考勤人从文件名获取
set name=%name:.bat=%
echo 解析文件为:%fileName%
set fileName=%fileName: =hello%
echo 姓名:%name%

rem 6、当xml文件和运行脚本不在同一盘中时,需要切换盘符 %~d0:获取执行文件所在的盘符
rem %~d0    
rem 7、打开执行文件路径    /d 可以切换盘符
cd /d "%~dp0"  

rem 8、将文件fileName 和name 传到里面去
java -cp .;kaoqin.jar;lib/*;  com.KaoQin "%fileName%"  "%name%"   

pause

以上涉及到两个变量:

1、要处理的人员名称:写在批处理的文件名上,用脚本截取获取 

2、要处理的文件名称:拖拽文件到批处理文件上处理

 

bat名为:张三.bat 

1、可以将要处理的文件拖到  张三.bat

2、也可以双击张三.bat 然后将要处理的文件拖拽到dos窗口

以上是自己做的考勤 处理小工具,具体的逻辑处理写在java代码里面,从批处理文件获取到要处理人员的名称:张三

以上之所以写的比较复杂,是因为兼容了传入的参数为空,以及传入的文件路径上有空值导致的闪退问题,关于这两种问题,查了好久才搞定,

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值