当前位置: 代码迷 >> 综合 >> 批处理应用
  详细解决方案

批处理应用

热度:30   发布时间:2024-03-07 03:03:23.0
@echo offset 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=%~1echo ==================================== 
):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

bat名为:张三.bat 

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

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

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

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

 

  相关解决方案