标题: [其他] 简单记录.bat [打印本页]
作者: binghejin 时间: 2020-6-28 15:09 标题: 简单记录.bat
本帖最后由 binghejin 于 2020-11-17 16:00 编辑
因自己的工作室需要一套能简单记录项目及项目的完成、结账情况,找不到合适的,就自己编写了一套,经过一段时间的使用,感觉比较稳定了,现在放上来给有相同需求的同学使用,发现BUG请跟帖,万分感谢。
目前已经可以多机器联网使用了,当然您也可以单机使用,代码一开始的时候,需要您根据自身需求填写2处变量即可。- :一开始
- @echo off
- rem MODE con: COLS=120 LINES=200
- color 8f
- cls
- echo=
- echo 正在启动.....
-
-
- ::变量参数
- set nian=%date:~0,4%
- set yue=%date:~5,2%
- set ri=%date:~8,2%
- ::下一行设置批处理工作目录地址,最后不加斜杠,如留空则视为批处理文件所在文件夹为工作目录。例如:d:\工作目录,如有内网可用的服务器,并且目录权限为全开的话,可以直接设置为网络路径,最后不加斜杠,例如:\\192.168.1.1\工作目录
- set mulu=
- ::下一行为版本号,是用来升级使用的,不要修改
- set banben=1.20201117
- ::下一行为你的单位名称,根据需要修改等号后面的内容
- set mingchen=
- set biaoti=%mingchen% V%banben%
-
-
-
- title %biaoti%
- cls
- echo=
- echo 正在启动...............
- del /q temp\*.* >nul
- cls
- echo=
- echo 正在启动....................
- for /f %%C in (%mulu%\data\banben.txt) do (set wangluobanben=%%C)
- if %banben% lss %wangluobanben% goto 升级
- goto 111
-
- :升级
- md temp
- cls
- echo=
- echo 检测到有新版本 %wangluobanben%,正在升级......
- echo ==============================================================
- if exist temp\noredme del temp\noredme
- if not exist %mulu%\data\redme.txt goto 丢失说明文件开始升级
- findstr /n .* %mulu%\data\redme.txt>>temp\noredme
- for /f %%a in ('findstr "#" %mulu%\data\redme.txt') do (
- for /f "tokens=1 delims=#" %%b in ('echo %%a') do (
- for /f "tokens=1 delims=版" %%c in ('echo %%b') do (
- if %%c GTR %banben% set shengjibanben=%%c&&goto 升级显示说明版本号确定
- )))
- :升级显示说明版本号确定
- for /f "tokens=1 delims=:" %%a in ('findstr #%shengjibanben%版本 temp\noredme') do (set /a shengjixianshi=%%a-1)
- echo=
- echo 新版说明
- echo=
- for /f "skip=%shengjixianshi% delims=" %%i in (%mulu%\data\redme.txt) do (echo %%i)
- echo=
- :丢失说明文件开始升级
- echo 按任意键开始升级...
- pause>nul
- echo echo 正在升级... >>temp\sj.bat
- echo copy /y %mulu%\data\jl.bat^>nul >>temp\sj.bat
- echo echo 升级完成... >>temp\sj.bat
- echo pause>nul >>temp\sj.bat
- echo jl.bat >>temp\sj.bat
- temp\sj.bat
-
- :111
- cls
- echo=
- echo 正在启动........................................
- if exist %mulu%\data\kehu.ini goto next2
- ::没有kehu.ini文件,开始创建...
- cls
- set /p kehu=请输入常用客户详细名称:
- for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastlinekh=%%~a)
- set /a xuhao=%lastlinekh%+1
- echo %xuhao%=%kehu%>>%mulu%\data\kehu.ini
-
-
- :next2
- cls
- echo=
- echo 正在启动.....................................................................
- if exist %mulu%\data\xm.ini goto next3
- ::没有xm.ini文件,开始创建...
- cls
- set /p xiangmu=请输入常用项目详细名称:
- for /f "delims=" %%b in (%mulu%\data\xm.ini) do (set lastlinexm=%%~b)
- set /a xuhao=%lastlinexm%+1
- echo %xuhao%=%xiangmu%>>%mulu%\data\xm.ini
-
- :next3
- cls
- echo=
- echo 正在启动....................................................................................................
- if not exist temp md temp
- if not exist %mulu%\data md %mulu%\data
- del /q temp\*.* >nul
-
-
-
-
-
- :start
- cls
- call:fm
- set /p a=请选择:
- if "%a%"=="1" goto 工作记录
- if "%a%"=="2" goto 查询未完成项目记录
- if "%a%"=="3" goto 查询未结账记录
- if "%a%"=="4" goto 查询项目记录
- if "%a%"=="5" goto 数据统计
- if "%a%"=="6" goto 数据管理
- if "%a%"=="0" goto end
- goto start
-
-
-
-
- :工作记录
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- type %mulu%\data\kehu.ini
- echo ==============================================================
- set /p b=请输入客户单位快捷数字,0=返回:
- echo %b%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto dwyes||goto dwno
- :dwyes
- if "%b%"=="0" goto start
- echo %b%|findstr %b%= "%mulu%\data\kehu.ini" >nul&&goto dwyou||goto 工作记录
- :dwyou
- for /f "tokens=2 delims==" %%c in ('findstr /b "%b%=" %mulu%\data\kehu.ini') do (set khdw=%%c)
- :xm
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- type %mulu%\data\xm.ini
- echo ==============================================================
- echo 客户单位=%khdw%
- echo=
- set /p d=请输入项目快捷数字,0=返回:
- echo %d%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto xmyes||goto xmno
- :xmyes
- if "%d%"=="0" goto start
- echo %d%|findstr %d%= "%mulu%\data\xm.ini" >nul&&goto xmyou||goto xm
- :xmyou
- for /f "tokens=2 delims==" %%e in ('findstr /b "%d%=" %mulu%\data\xm.ini') do (set xm=%%e)
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo ==============================================================
- set /p dj=请输入单价 0=返回:
- if "%dj%"=="0" goto start
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 项目单价=%dj%
- echo ==============================================================
- set /p sl=请输入数量 0=返回:
- if "%sl%"=="0" goto start
- if "%sl%"=="" set sl=1
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 项目单价=%dj%
- echo 项目数量=%sl%
- echo ==============================================================
- set /p bz=请输入备注 0=返回:
- if "%bz%"=="0" goto start
- echo A= %dj% >>temp\js.vbs
- echo B= %sl% >>temp\js.vbs
- echo jieguo =eval(0+ A * B)>>temp\js.vbs
- echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
- call temp\js.vbs
- del temp\js.vbs
- for /f %%i in (temp\sz.txt) do (set heji=%%i)
- del temp\sz.txt
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 具体项目=%bz%
- echo 项目单价=%dj%
- echo 项目数量=%sl%
- echo 金额合计=%heji%
- echo ==============================================================
- set /p h=请输入甲方项目联系人姓名 0=返回:
- if "%h%"=="0" goto start
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 具体项目=%bz%
- echo 项目单价=%dj%
- echo 项目数量=%sl%
- echo 金额合计=%heji%
- echo 项目联系人=%h%
- echo ==============================================================
- set /p i=请输入甲方项目联系人%h%的电话 0=返回:
- if "%i%"=="0" goto start
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 具体项目=%bz%
- echo 项目单价=%dj%
- echo 项目数量=%sl%
- echo 金额合计=%heji%
- echo 项目联系人=%h%
- echo 联系电话=%i%
- echo **开具=未开
- echo 开票日期=未知
- echo **号码=未知
- echo 结账方式=未知
- echo 银行流水=未知
- echo 创建日期=%nian%%yue%%ri%
- echo 结账日期=未知
- echo ==============================================================
- echo 正在写入...
- if not exist %mulu%\data\work md %mulu%\data\work
- if not exist %mulu%\data\work\%nian% md %mulu%\data\work\%nian%
- if not exist %mulu%\data\work\%nian%\%yue% md %mulu%\data\work\%nian%\%yue%
- if not exist %mulu%\data\work\%nian%\%yue%\%ri% md %mulu%\data\work\%nian%\%yue%\%ri%
- if not exist %mulu%\data\work\%nian%\%yue%\%ri%\%khdw% md %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%
- echo 客户单位=%khdw%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 客户项目=%xm%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 具体项目=%bz%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 项目单价=%dj%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 项目数量=%sl%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 金额合计=%heji%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 项目联系人=%h%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 联系电话=%i%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo **开具=未开>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 开票日期=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo **号码=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 结账方式=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 支票号码=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 银行流水=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 创建日期=%nian%%yue%%ri%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo 结账日期=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
- echo %nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt*客户单位=%khdw%*客户项目=%xm%*具体项目=%bz%*项目单价=%dj%*项目数量=%sl%*金额合计=%heji%*项目联系人=%h%*联系电话=%i%***开具=未开*开票日期=未知***号码=未知*结账方式=未知*支票号码=未知*银行流水=未知*创建日期=%nian%%yue%%ri%*结账日期=未知>>%mulu%\data\DB_list.txt
- if exist %mulu%\data\work\%nian%\%yue%\heji.jl goto 计算合计金额
- echo %heji%>>%mulu%\data\work\%nian%\%yue%\heji.jl
- goto 合计金额创建成功继续
-
- :计算合计金额
- for /f %%v in (%mulu%\data\work\%nian%\%yue%\heji.jl) do (set jisuana=%%v)
- set jisuanb=%heji%
- call:vbs计算加法
- move /y temp\sz.txt %mulu%\data\work\%nian%\%yue%\heji.jl >nul
- :合计金额创建成功继续
- if not exist %mulu%\data\wjz md %mulu%\data\wjz
- copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wjz >nul
- if exist %mulu%\data\wjz\heji.jl goto 计算未结账合计金额
- echo %heji%>>%mulu%\data\wjz\heji.jl
- goto 未结账合计金额创建成功继续
-
- :计算未结账合计金额
- for /f %%w in (%mulu%\data\wjz\heji.jl) do (
- set jisuana=%%w
- )
- set jisuanb=%heji%
- call:vbs计算加法
- move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
-
- :未结账合计金额创建成功继续
- if not exist %mulu%\data\wwc md %mulu%\data\wwc
- copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wwc >nul
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- echo 客户单位=%khdw%
- echo 客户项目=%xm%
- echo 具体项目=%bz%
- echo 项目单价=%dj%
- echo 项目数量=%sl%
- echo 金额合计=%heji%
- echo 项目联系人=%h%
- echo 联系电话=%i%
- echo **开具=未开
- echo 开票日期=未知
- echo **号码=未知
- echo 结账方式=未知
- echo 银行流水=未知
- echo 创建日期=%nian%%yue%%ri%
- echo 结账日期=未知
- echo ==============================================================
- echo 写入完成,任意键返回
- pause>nul
- goto start
-
- :dwno
- set j=0
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- type %mulu%\data\kehu.ini
- echo ==============================================================
- echo 您输入的单位名称 %b%,没有记录,是否记录?
- echo=
- echo 1=记录 其他=返回
- set /p j=
- if "%j%"=="" goto dwmeiyou
- if "%j%"=="1" goto dwchuangjian
- goto start
- :dwchuangjian
- for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastline=%%~a)
- echo %lastline%>temp\dwmc.tmp
- for /f "tokens=1 delims==" %%i in (temp\dwmc.tmp) do (set shuzi=%%i)
- set/a xuhao=%shuzi%+1
- echo %xuhao%=%b%>>%mulu%\data\kehu.ini
- set b=%xuhao%
- goto dwyou
-
- :xmno
- set m=0
- cls
- echo=
- echo=
- echo %biaoti% 工作项目记录
- echo ==============================================================
- type %mulu%\data\xm.ini
- echo ==============================================================
- echo 您输入的项目名称 %d%,没有记录,是否记录?
- echo=
- echo 1=记录 其他=返回
- set /p m=
- if "%m%"=="" goto xmmeiyou
- if "%m%"=="1" goto xmchuangjian
- goto start
- :xmchuangjian
- for /f "delims=" %%a in (%mulu%\data\xm.ini) do (set lastline=%%~a)
- echo %lastline%>temp\xmmc.tmp
- for /f "tokens=1 delims==" %%i in (temp\xmmc.tmp) do (set shuzi=%%i)
- set/a xuhao=%shuzi%+1
- echo %xuhao%=%d%>>%mulu%\data\xm.ini
- set d=%xuhao%
- goto xmyes
-
-
-
-
- :没有未完成项目记录
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- echo 没有未完成的工作项目记录!
- echo ==============================================================
- pause
- goto start
-
-
-
-
- :查询未完成项目记录
- if not exist %mulu%\data\wwc\*.txt goto 没有未完成项目记录
- if exist temp\wwc*.* del /q temp\wwc*.* >nul
- dir /b /on %mulu%\data\wwc\*.txt>temp\wwc.tmp
- rem echo %mulu%\data\wwc\*.txt
- for /f "tokens=1 delims=." %%H in (temp\wwc.tmp) do (
- echo %%H>>temp\wwc.ttt
- )
- findstr /n .* temp\wwc.ttt>>temp\wwc.txt
- del temp\wwc.ttt>nul
- del temp\wwc.tmp>nul
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type temp\wwc.txt
- echo ==============================================================
- set /p p=输入序号以查看详情,0=返回:
- if "%p%"=="0" goto start
- for /f "tokens=2 delims=:" %%q in ('findstr /b "%p%:" temp\wwc.txt') do (set wwcnr=%%q)
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type %mulu%\data\wwc\%wwcnr%.txt
- echo ==============================================================
- set /p r=X=完成该项目,D=删除该项目,其他键返回:
- if "%r%"=="x" goto 完成该项目
- if "%r%"=="d" goto 删除该项目
- goto 查询未完成项目记录
-
- :删除该项目
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type %mulu%\data\wwc\%wwcnr%.txt
- echo ==============================================================
- set /p aa=删除该项目后,会同步删除该项目所有对应数据,1=确定,其他键返回:
- if "%aa%"=="1" goto 确定删除该项目
- goto 查询未完成项目记录
-
- :确定删除该项目
- copy %mulu%\data\wwc\%wwcnr%.txt temp\%wwcnr%.txt>nul
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type %mulu%\data\wwc\%wwcnr%.txt
- echo ==============================================================
- echo 正在删除中...
- ::从数据库中读取要删除文件地址、客户单位、项目金额合计
- for /f %%a in ('findstr "%wwcnr%.txt" %mulu%\data\DB_list.txt') do (
- for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
- set wenjiandizhi=%%b
- for /f "tokens=2 delims=*" %%c in ('echo %%a') do (
- for /f "tokens=2 delims==" %%d in ('echo %%c') do (
- set kehudanwei=%%d
- for /f "tokens=7 delims=*" %%e in ('echo %%a') do (
- for /f "tokens=2 delims==" %%f in ('echo %%e') do (
- set xmjineheji=%%f
- ))))))
- ::从文件地址读取文件所在的年目录与月目录
- for /f "tokens=1-3 delims=\" %%a in ('echo %wenjiandizhi%') do (
- set xmnian=%%a
- set xmyue=%%b
- set xmri=%%c
- )
- ::读取work下相关月份下的金额合计数值
- for /f %%a in (%mulu%\data\work\%xmnian%\%xmyue%\heji.jl) do (set workheji=%%a)
- ::读取wjz目录下的金额合计数值
- for /f %%a in (%mulu%\data\wjz\heji.jl) do (set wjzheji=%%a)
-
- ::计算work目录内相关月份合计金额
- if exist %mulu%\data\work\%xmnian%\%xmyue%\heji.jl del %mulu%\data\work\%xmnian%\%xmyue%\heji.jl>nul
- if exist temp\js.vbs del temp\js.vbs>nul
- if exist temp\sz.txt del temp\sz.txt>nul
- set jisuana=%workheji%
- set jisuanb=%xmjineheji%
- call:vbs计算减法
- move temp\sz.txt %mulu%\data\work\%xmnian%\%xmyue%\heji.jl>nul
-
- ::计算未结账合计金额
- if exist %mulu%\data\wjz\heji.jl del %mulu%\data\wjz\heji.jl>nul
- if exist temp\js.vbs del temp\js.vbs>nul
- if exist temp\sz.txt del temp\sz.txt>nul
- set jisuana=%wjzheji%
- set jisuanb=%xmjineheji%
- call:vbs计算减法
- move temp\sz.txt %mulu%\data\wjz\heji.jl>nul
-
- ::删除work目录下对应文件,判断该目录下是否还有其他文件,如没有,则删除目录。
- del %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%\%wwcnr%.txt>nul
- rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%>nul
- rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%>nul
-
- ::删除wwc目录下文件
- if exist %mulu%\data\wwc\%wwcnr%.txt del %mulu%\data\wwc\%wwcnr%.txt>nul
-
- ::删除wjz目录下文件
- if exist %mulu%\data\wjz\%wwcnr%.txt del %mulu%\data\wjz\%wwcnr%.txt>nul
-
- ::从数据库中删除相关行
- find/v "%wenjiandizhi%" %mulu%\data\DB_list.txt>>temp\ls.jl
- pause
- move /y temp\ls.jl %mulu%\data\DB_list.txt >nul
-
- ::删除完成后显示
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type temp\%wwcnr%.txt
- echo ==============================================================
- del temp\%wwcnr%.txt>nul
- echo 项目删除完成,任意键返回
- pause>nul
- goto 查询未完成项目记录
-
-
-
-
- :完成该项目
- cls
- echo=
- echo=
- echo %biaoti% 查询未完成项目记录
- echo ==============================================================
- type %mulu%\data\wwc\%wwcnr%.txt
- echo ==============================================================
- del %mulu%\data\wwc\%wwcnr%.txt>nul
- echo 项目完成,任意键返回
- pause>nul
- goto 查询未完成项目记录
-
-
-
-
-
- :查询未结账记录
- if not exist %mulu%\data\wjz\*.txt goto 没有未结账记录
- set n=0
- if exist temp\wjz*.* del /q temp\wjz*.* >nul
- dir /b /on %mulu%\data\wjz\*.txt>temp\wjz.tmp
- for /f %%J in (%mulu%\data\wjz\heji.jl) do (set wjzje=%%J)
- :过滤关键词成功
- for /f "tokens=1 delims=." %%a in (temp\wjz.tmp) do (echo %%a>>temp\wjz.ttt)
- del temp\wjz.tmp>nul
- for /f %%b in (temp\wjz.ttt) do (
- for /f "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%%b.txt') do (
- for /f "tokens=2 delims==" %%d in ('findstr /b "**开具" %mulu%\data\wjz\%%b.txt') do (
- if "%%d"=="已开" (echo %%b.%%c.%%d>>temp\wjz.yikai
- ) else (echo %%b.%%c.%%d>>temp\wjz.weikai)
- )
- )
- )
-
- for /f %%a in (temp\wjz.weikai) do (echo %%a>>temp\wjz.je)
- for /f %%a in (temp\wjz.yikai) do (echo %%a>>temp\wjz.je)
-
- for /f %%p in ('findstr /n .* temp\wjz.je') do (
- echo %%p>>temp\wjz.txt
- echo=>>temp\wjz.txt
- )
- del temp\wjz.je>nul
-
- :继续查询
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type temp\wjz.txt
- echo=
- echo 合计:%wjzje% 元。
- echo ==============================================================
- set /p s=输入序号或关键词,0=返回:
- if "%s%"=="0" goto start
- echo %s%|findstr "1 2 3 4 5 6 7 8 9" >nul&&goto 序号查看详情||goto 过滤关键词
- :序号查看详情
- for /f "tokens=2 delims=:" %%t in ('findstr /b "%s%:" temp\wjz.txt') do (
- for /f "tokens=1 delims=." %%u in ('echo %%t') do (
- set wjznr=%%u
- )
- )
- :**开具状态修改后显示
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- echo B=备注 E=编辑 X=转为已结账 Z=**转为已开 其他键=返回
- set /p u=请选择:
- if "%u%"=="b" goto 备注项目检查
- if "%u%"=="e" goto 编辑该项
- if "%u%"=="x" goto 转为已结账
- if "%u%"=="z" goto 转为已开
- goto 查询未结账记录
-
- :备注项目检查
- set xiangmujiancha=
- for /f %%a in ('findstr "备注内容=" %mulu%\data\wjz\%wjznr%.txt') do set xiangmujiancha=%%a
- if "%xiangmujiancha%"=="" goto 开始备注
- for /f %%a in ('findstr "备注内容=" %mulu%\data\wjz\%wjznr%.txt') do (
- for /f "tokens=2 delims==" %%b in ('echo %%a') do (
- set beizhuneirong=%%b
- ))
-
- :开始备注
- cls
- echo=
- echo=
- echo %biaoti% 备注
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- if not "%xiangmujiancha%"=="" goto 追加备注内容
- set /p beizhu=请输入备注内容,0=返回:
- if "%beizhu%"=="0" goto 查询未结账记录
- echo 备注内容=%beizhu% >>%mulu%\data\wjz\%wjznr%.txt
- set xinjilu=备注内容=%beizhu%
- :追加备注后同步文件
- if exist %mulu%\data\wwc\%wjznr%.txt copy %mulu%\data\wjz\%wjznr%.txt %mulu%\data\wwc >nul
- for /f %%a in ('findstr "%wjznr%.txt" %mulu%\data\DB_list.txt') do (
- for /f "tokens=1-4 delims=\" %%b in ('echo %%a') do (
- set beizhuwenjianpath=%%b\%%c\%%d\%%e))
- if exist %mulu%\data\work\%beizhuwenjianpath%\%wjznr%.txt copy %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%beizhuwenjianpath% >nul
- set xbznr=%xinjilu%
- call:替换数据库内容
- goto **开具状态修改后显示
-
- :追加备注内容
- set /p beizhu=请输入追加的备注内容,0=返回:
- if "%beizhu%"=="0" goto 查询未结账记录
- set name=%mulu%\data\wjz\%wjznr%.txt
- set chaxun=备注内容=%beizhuneirong%
- set yuanjilu=备注内容=%beizhuneirong%
- set xinjilu=备注内容=%beizhuneirong%%beizhu%
- call:替换记录文件内容
- goto 追加备注后同步文件
-
-
-
-
-
-
-
-
-
- :编辑该项
- set 编辑文件路径含后缀名=%mulu%\data\wjz\%wjznr%.txt
- set 编辑文件全名=%wjznr%.txt
- call:编辑文件开始
- goto 序号查看详情
-
-
- :转为已开
- for /f %%a in ('findstr "**号码" %mulu%\data\wjz\%wjznr%.txt') do (
- for /f "tokens=2 delims==" %%b in ('echo %%a') do (set cxwjzfapiaohaoma=%%b))
- if "%cxwjzfapiaohaoma%"=="未知" goto 开始转为已开
- echo 该项目**已开
- pause
- goto 查询未结账记录
- :开始转为已开
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- set 开票日期=
- set /p 开票日期=请输入**的开具日期(不开**请输入bk,直接回车日期为%nian%%yue%%ri%,0=返回):
- if "%开票日期%"=="0" goto 查询未结账记录
- if "%**号码%"=="bk" goto 不开**
- if "%开票日期%"=="" set 开票日期=%nian%%yue%%ri%
- echo %开票日期%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是日期||goto 不是日期
- :不是日期
- echo 日期格式输入错误,请重新输入,例如:%nian%%yue%%ri%
- pause
- goto 转为已开
- :是日期
- set /p **号码=请输入开具的**号码(不开**请输入bk):
- if "%**号码%"=="bk" goto 不开**
- echo %**号码%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是**号码||goto 不是**号码
- :不是**号码
- echo 号码格式输入错误,请重新输入,例如:05476533
- pause
- goto 转为已开
- :不开**
- set xfpkj=**开具=不开
- set xinjilu=**开具=不开
- goto **开具确定后
- :是**号码
- set xfpkj=**开具=已开
- set xinjilu=**开具=已开
- :**开具确定后
- set xkprq=开票日期=%开票日期%
- set xfphm=**号码=%**号码%
- rem 处理数据库
- set name=%wjznr%.txt
- call:替换数据库内容
-
- rem 处理wjz目录下记录文件
- set name=%mulu%\data\wjz\%wjznr%.txt
-
- rem 处理**开具项
- set chaxun=**开具
- call:替换记录文件内容
-
- rem 处理开票日期项
- set chaxun=开票日期
- set xinjilu=%xkprq%
- call:替换记录文件内容
-
- rem 处理**号码项
- set chaxun=**号码
- set xinjilu=%xfphm%
- call:替换记录文件内容
-
- for /f "tokens=1-4 delims=\" %%a in ('findstr "%wjznr%" %mulu%\data\DB_list.txt') do (
- set wenjianlujing=%%a\%%b\%%c\%%d)
- copy /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%wenjianlujing% >nul
- goto **开具状态修改后显示
-
- :过滤关键词
- echo 正在过滤关键词...
- set n=0
- if exist temp\wjz.tmp del temp\wjz.tmp>nul
- if exist temp\wjz.txt del temp\wjz.txt>nul
- cd %mulu%\data\wjz
- for /f "delims=" %%G in ('dir /b /on *.txt') do (
- findstr /m "%s%" %%G>>..\..\temp\wjz.tmp
- )
- cd..
- cd..
- for /f %%K in (temp\wjz.tmp) do (
- for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %mulu%\data\wjz\%%K') do (
- set /a n+=%%L
- )
- )
- set wjzje=%n%
- goto 过滤关键词成功
-
- :转为已结账
- for /f "tokens=2 delims==" %%a in ('findstr /b "**开具" %mulu%\data\wjz\%wjznr%.txt')do (set fapiaoshifoukaiju=%%a)
- if "%fapiaoshifoukaiju%"=="未开" goto **未开不能转为已结账
- goto 开始输入支票号码
-
- :**未开不能转为已结账
- echo=
- echo 该项目**还未开具,不能转为已记账记录,请先录入**数据...
- pause
- goto 查询未结账记录
-
- :开始输入支票号码
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- echo 1.支票结账 2.其他方式结账 0.返回
- set /p a=请选择:
- if "%a%"=="0" goto 查询未结账记录
- if "%a%"=="1" goto 支票结账
- if "%a%"=="2" goto 其他方式结账
- goto 开始输入支票号码
-
- :其他方式结账
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- set /p b=请选择结账方式,1=同城转账 2=其他方式结账,例如:现金、微信等 0=返回:
- if "%b%"=="1" goto 同城转账
- if "%b%"=="2" goto 其他方式结账
- if "%b%"=="0" goto 查询未结账记录
- goto 其他方式结账
-
-
- :同城转账
- set jiezhangfangshi=同城转账
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- set /p yinhangliushui=请输入银行流水号:
- echo %yinhangliushui%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是同城转账的银行流水||goto 不是同城转账的银行流水
-
- :不是同城转账的银行流水
- echo 您输入的 %yinhangliushui% 格式不正确,银行流水号是8位纯数字,请正确输入。
- pause
- goto 同城转账
-
- :是同城转账的银行流水
- set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
- if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
- echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是同城转账的结账日期||goto 不是同城转账的结账日期
-
- :不是同城转账的结账日期
- echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
- pause
- goto 同城转账
-
- :是同城转账的结账日期
- set xjzfs=结账方式=%jiezhangfangshi%
- set xyhls=银行流水=%yinhangliushui%
- set xjzrq=结账日期=%jiezhangriqi%
- call:替换数据库内容
-
- rem 同城转账确定后处理wjz目录下记录文件
- set name=%mulu%\data\wjz\%wjznr%.txt
-
- rem 处理结账方式项
- set chaxun=结账方式
- set xinjilu=%xjzfs%
- call:替换记录文件内容
-
- rem 处理银行流水项
- set chaxun=银行流水
- set xinjilu=%xyhls%
- call:替换记录文件内容
-
- rem 处理结账日期项
- set chaxun=结账日期
- set xinjilu=%xjzrq%
- call:替换记录文件内容
- call:未结账转结账后处理文件
- goto 查询未结账记录
-
-
-
- :其他方式结账
- set jiezhangfangshi=
- set jiezhangriqi=
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- set /p jiezhangfangshi=请直接输入结账方式,例如:现金、微信等:
- set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
- if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
- echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是其他方式的结账日期||goto 不是其他方式的结账日期
-
- :不是其他方式的结账日期
- echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
- pause
- goto 其他方式结账
-
- :是其他方式的结账日期
- set xjzfs=结账方式=%jiezhangfangshi%
- set xjzrq=结账日期=%jiezhangriqi%
- call:替换数据库内容
-
- rem 其他方式结账确定后处理wjz目录下记录文件
- set name=%mulu%\data\wjz\%wjznr%.txt
-
- rem 处理结账方式项
- set chaxun=结账方式
- set xinjilu=%xjzfs%
- call:替换记录文件内容
-
- rem 处理结账日期项
- set chaxun=结账日期
- set xinjilu=%xjzrq%
- call:替换记录文件内容
- call:未结账转结账后处理文件
- goto 查询未结账记录
-
-
-
- :支票结账
- set xjzfs=结账方式=支票
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- type %mulu%\data\wjz\%wjznr%.txt
- echo ==============================================================
- set /p zhipiaohaoma=请输入支票号码,现金结账请直接输入现金,其他方式结账:
- echo %zhipiaohaoma%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是支票号码||goto 不是支票号码
-
- :不是支票号码
- echo=
- echo 您输入的 %zhipiaohaoma% 不是支票号码,请输入8位纯数字支票号码,按任意键重新输入
- pause>nul
- goto 支票结账
-
- :是支票号码
- set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
- if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
- echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是支票的结账日期||goto 不是支票的结账日期
-
- :不是支票的结账日期
- echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
- goto 支票结账
-
- :是支票的结账日期
- set xzphm=支票号码=%zhipiaohaoma%
- set xjzrq=结账日期=%jiezhangriqi%
- set name=%wjznr%.txt
- call:替换数据库内容
-
- rem 支票结账确定后处理wjz目录下记录文件
- set name=%mulu%\data\wjz\%wjznr%.txt
-
- rem 处理结账方式项
- set chaxun=结账方式
- set xinjilu=%xjzfs%
- call:替换记录文件内容
-
- rem 处理支票号码项
- set chaxun=支票号码
- set xinjilu=%xzphm%
- call:替换记录文件内容
-
- rem 处理结账日期项
- set chaxun=结账日期
- set xinjilu=%xjzrq%
- call:替换记录文件内容
- call:未结账转结账后处理文件
- goto 查询未结账记录
-
-
- :查询项目记录
- set v=
- del /q temp\*list.* >nul
- cls
- echo=
- echo=
- echo %biaoti% 查询已完成项目记录
- echo ==============================================================
- set /p v=请输入查询条件,0=返回:
- echo ==============================================================
- if "%v%"=="0" goto start
- goto 查询项目记录开始
-
- :查询项目记录开始
- if exist temp\cx*.* del /q temp\*.* >nul
- cls
- echo=
- echo=
- echo %biaoti% 正在按照 %v% 为条件检索
- echo ===================================================================
- echo 正在检索包含 %v% 的条目......
- ::a=数据库中包含查找条件的行
- ::b=按查找条件找到的文件路径,包含后缀名
- ::c=按查找条件找到的文件路径,不含后缀名
- ::d=以斜杠划分,保留第5项,也就是名称,用来展示
- ::4list.tttpath是包含后缀名的文件完整路径
- ::e=
- for /f %%a in ('findstr "%v%" %mulu%\data\DB_list.txt') do (
- for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
- for /f "tokens=1 delims=." %%c in ('echo %%b') do (
- for /f "tokens=5 delims=\" %%d in ('echo %%c') do (
- echo %mulu%\data\work\%%b>>temp\4list.tttpath
- echo %%d>>temp\4list.tttname
- )
- )
- )
- )
- for /f %%m in (temp\4list.tttpath) do (
- for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %%m') do (
- echo %%m.%%L>>temp\4list.tttlujing
- )
- )
- set sz=0
- for /f "tokens=9 delims=\" %%a in (temp\4list.tttlujing) do (
- for /f "tokens=1,3 delims=." %%b in ('echo %%a') do (
- echo %%b.%%c>>temp\4list.tttjine
- set /a sz+=%%c
- )
- )
-
- findstr /n .* temp\4list.tttpath>>temp\4list.path
- for /f %%a in ('findstr /n .* temp\4list.tttjine') do (
- echo %%a>>temp\4list.name
- echo=>>temp\4list.name
- )
-
- :查询继续显示
- cls
- echo=
- echo=
- echo %biaoti% 正在按照 %v% 为条件检索
- echo ===================================================================
- if exist temp\4list.name (type temp\4list.name) else (
- echo 没有查询到包含 %v% 的记录文件
- echo 按任意键返回
- pause>nul
- goto 查询项目记录
- )
- echo ===================================================================
- echo 以 %v% 为条件检索到的项目金额合计:%sz%元
- echo=
- set /p v1=输入序号查看详情,0=返回:
- echo ----------------------------------------------------------------------------------------------------------
- if "%v1%"=="0" goto 查询项目记录
- for /f "tokens=2 delims=:" %%a in ('findstr /b "%v1%:" temp\4list.path') do (
- cls
- echo=
- echo=
- echo %biaoti% 正在按照 %v% 为条件检索
- echo ===================================================================
- set 展示后选择文件全名含路径=%%a
- type %%a
- echo ===================================================================
- )
- pause
- goto 查询继续显示
-
-
-
-
- :数据统计
- cls
- echo=
- echo=
- echo %biaoti% 数据统计
- echo ==============================================================
- echo 1.统计总金额
- echo 2.统计未结账金额
- echo 3.统计已结账金额
- echo 4.核查金额记录数据
- echo 0.返回
- echo ==============================================================
- set /p x=请选择:
- if "%x%"=="1" goto 统计总金额
- if "%x%"=="2" goto 统计未结账金额
- if "%x%"=="3" goto 统计已结账金额
- if "%x%"=="4" goto 核查金额记录数据
- if "%x%"=="0" goto start
- goto 数据统计
-
- :统计总金额
- cls
- echo=
- echo=
- echo %biaoti% 统计总金额
- echo ==============================================================
- Setlocal enabledelayedexpansion
- for /f %%a in ('dir/ad/b %mulu%\data\work') do (
- set c=0
- set nian=%%a
- echo !nian!年
- echo ======
- for /f %%b in ('dir/ad/b %mulu%\data\work\%%a') do (
- for /f %%c in (%mulu%\data\work\%%a\%%b\heji.jl) do (
- set/a c+=%%c
- echo %%a年%%b月金额合计为%%c.00
- )
- )
- echo =================================
- echo %%a年总计金额为 !c! 元整
- echo=
- )
- for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jine=%%a)
- echo 截止目前全部营收为 %jine% 元整
- echo=
- echo 任意键返回...
- pause>nul
- goto 数据统计
-
- :统计未结账金额
- if exist %mulu%\data\wjz\heji.jl goto 开始统计未结账金额
- cls
- echo=
- echo=
- echo %biaoti% 统计未结账金额
- echo ==============================================================
- echo 错误:没有未结账记录!
- pause
- goto 数据统计
- :开始统计未结账金额
- for /f %%z in (%mulu%\data\wjz\heji.jl) do (set jine=%%z)
- cls
- echo=
- echo=
- echo %biaoti% 统计未结账金额
- echo ==============================================================
- echo 未结账金额为 %jine% 元。
- pause
- goto 数据统计
-
- :统计已结账金额
- if exist %mulu%\data\yjz\heji.jl goto 开始统计已结账金额
- cls
- echo=
- echo=
- echo %biaoti% 统计已结账金额
- echo ==============================================================
- echo 错误:没有已结账记录!
- pause
- goto 数据统计
- :开始统计已结账金额
- for /f %%F in (%mulu%\data\yjz\heji.jl) do (set jine=%%F)
- cls
- echo=
- echo=
- echo %biaoti% 统计已结账金额
- echo ==============================================================
- echo 已结账金额为 %jine% 元。
- pause
- goto 数据统计
-
-
-
-
-
-
-
-
-
-
-
- :核查金额记录数据
- set n=
- cls
- echo=
- echo=
- echo %biaoti% 核查金额记录数据
- echo ==============================================================
- :核查总金额
- set nian=%date:~0,4%
- set sz=0
- set /a n+=1
- if %n% gtr 12 goto 核查未结账金额
- if %n% geq 10 goto 月份大于等于十
- set yf=0%n%
- :查询月份是否存在
- if exist %mulu%\data\work\%nian%\%yf%\*.* goto 月份有
- goto 核查总金额
- :月份大于等于十
- set yf=%n%
- goto 查询月份是否存在
- :月份有
- for /f %%a in ('dir /s /b %mulu%\data\work\%nian%\%yf%\*.txt') do (
- for /f "tokens=2 delims==" %%b in ('findstr /b "金额合计" %%a') do (
- set /a sz+=%%b
- )
- )
- if exist %mulu%\data\work\%nian%\%yf%\heji.jl goto 开始核查
- set /p a=发现%nian%年%yf%月的合计数据不存在,是否重新创建?1=创建,其他键=返回
- if "%a%"=="1" goto 开始重新创建
- goto 数据统计
- :开始重新创建
- echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
- goto 核查金额记录数据
- :开始核查
- for /f %%a in (%mulu%\data\work\%nian%\%yf%\heji.jl) do (set laozje=%%a)
- if %sz% equ %laozje% goto 总金额一样
- if %sz% gtr %laozje% goto 总金额不一样
- if %sz% lss %laozje% goto 总金额不一样
- :总金额一样
- echo %nian%年%yf%月,总金额 %sz% 元。
- echo ==============================================================
- goto 核查总金额
- :总金额不一样
- echo %nian%年%yf%月,实际总金额 %sz% 元。
- echo ==============================================================
- echo 未结账实际金额:%sz%元。
- echo 金额记录数据为:%laozje%元。
- echo %nian%年%yf%月记录与总金额不符,开始修复...
- echo=
- del %mulu%\data\work\%nian%\%yf%\heji.jl>nul
- echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
- echo 修复完成,按任意键返回
- pause>nul
- goto 核查金额记录数据
-
-
-
- :核查未结账金额
- echo=
- set n=0
- for /f %%b in ('dir /b %mulu%\data\wjz\*.txt') do (
- for /f "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%%b') do (
- set /a n+=%%c
- )
- )
- set xinwjz=%n%
- if exist %mulu%\data\wjz\heji.jl goto 开始核查未结账金额
- set /p a=发现未结账的合计数据不存在,是否重新创建?1=创建,0=返回
- if "%a%"=="1" goto 开始重新创建未结账
- if "%a%"=="0" goto 数据统计
- goto 核查未结账金额
- :开始重新创建未结账
- echo %xinwjz%>%mulu%\data\wjz\heji.jl
- goto 核查未结账金额
- :开始核查未结账金额
- for /f %%a in (%mulu%\data\wjz\heji.jl) do (
- set laowjz=%%a
- )
- if %xinwjz% equ %laowjz% goto 未结账金额一样
- if %xinwjz% gtr %laowjz% goto 未结账金额不一样
- if %xinwjz% lss %laowjz% goto 未结账金额不一样
- :未结账金额不一样
- echo 未结账实际金额:%xinwjz%元。
- echo 金额记录数据为:%laowjz%元。
- echo 未结账金额与记录不符,开始修复...
- echo=
- del %mulu%\data\wjz\heji.jl>nul
- echo %xinwjz%>%mulu%\data\wjz\heji.jl
- echo 修复完成,按任意键返回
- pause>nul
- goto 核查金额记录数据
-
- :未结账金额一样
- echo 未结账金额 %laowjz% 元。
- echo ==============================================================
- echo 所有核查结束,按任意键返回
- pause>nul
- goto 数据统计
-
-
-
- :fm
- cls
- echo=
- echo=
- echo %biaoti%
- echo ==============================================================
- echo 1.工作项目记录
- echo 2.查询未完成项目记录
- echo 3.查询未结账记录
- echo 4.查询项目记录
- echo 5.数据统计
- echo 6.数据管理
- echo 0.退出
- echo ==============================================================
- goto :eof
-
- :数据管理
- set a=
- cls
- echo=
- echo=
- echo %biaoti% 数据管理
- echo ==============================================================
- echo 1.刷新数据库
- echo 2.备份数据库
- echo 3.备份管理
- echo 0.返回
- echo ==============================================================
- set /p a=请选择:
- if "%a%"=="1" goto 刷新数据库
- if "%a%"=="2" goto 开始备份
- if "%a%"=="3" goto 备份管理
- if "%a%"=="" goto 数据管理
- goto start
-
- :刷新数据库
- if exist %mulu%\data\DB_list.txt del /q %mulu%\data\DB_list.txt
- cls
- echo=
- echo=
- echo %biaoti% 刷新数据库
- echo ==============================================================
- echo 正在刷新数据库,请稍等......
- ::m=目录路径
- ::a=读取WORK文件夹下年份目录列表,同时获取年份
- ::b=读取年份文件夹下月份目录列表,同时获取月份
- ::c=读取月份文件夹下日期目录列表,同时获取日期
- ::d=读取日期文件夹下单位名称目录列表,同时获取单位
- ::e=读取单位文件夹下TXT文件列表,同时获取文件名称
- ::
- ::
- ::
- @echo off
- setlocal enabledelayedexpansion
- set m=%mulu%\data\work
- for /f %%a in ('dir /ad /b %m%') do (
- for /f %%b in ('dir /ad /b %m%\%%a') do (
- for /f %%c in ('dir /ad /b %m%\%%a\%%b') do (
- for /f %%d in ('dir /ad /b %m%\%%a\%%b\%%c') do (
- for /f %%e in ('dir /b %m%\%%a\%%b\%%c\%%d\*.txt') do (
- (for %%f in ("%m%\%%a\%%b\%%c\%%d\%%e") do (
- set str=
- for /f "delims=" %%g in ('type %%f') do (
- set str=!str!*%%g
- )
- echo,%%a\%%b\%%c\%%d\%%e!str!
- ))>>"%mulu%\data\DB_list.txt"
- )
- )
- )
- )
- )
-
- cls
- echo=
- echo=
- echo %biaoti% 刷新数据库
- echo ==============================================================
- echo 数据库刷新完成,按任意键继续......
- pause>nul
- goto start
-
-
- :开始备份
- if exist %mulu%\backup\%nian%%yue%%ri% goto 已备份
- cls
- echo=
- echo=
- echo %biaoti% 备份数据
- echo ==============================================================
- echo 正在将数据备份至backup下的%nian%%yue%%ri%文件夹内...
- md %mulu%\backup\%nian%%yue%%ri%
- xcopy /e %mulu%\data %mulu%\backup\%nian%%yue%%ri%
- echo 备份完成,按任意键返回
- pause>nul
- goto start
-
- :已备份
- cls
- echo=
- echo=
- echo %biaoti% 备份数据
- echo ==============================================================
- echo %nian%年%yue%月%ri%日已备份过数据,如继续将删除当前数据
- echo=
- set /p a=1=继续 0=返回
- if "%a%"=="0" goto start
- if "%a%"=="1" goto 准备开始备份
- goto 已备份
- :准备开始备份
- echo 正在删除当前备份 %nian%%yue%%ri%
- rmdir /s /q %mulu%\backup\%nian%%yue%%ri%
- goto 开始备份
-
- :备份管理
- cls
- echo=
- echo=
- echo %biaoti% 备份管理
- echo ==============================================================
- dir /ad /b %mulu%\backup
- echo ==============================================================
- set /p b=输入需要操作的备份数据全名,0=返回
- if "%b%"=="0" goto 数据管理
- if not exist %mulu%\backup\%b% goto 备份不存在
- cls
- echo=
- echo=
- echo %biaoti% 备份管理
- echo ==============================================================
- echo 准备操作 %b% 备份
- echo ==============================================================
- set /p c=输入 %b% 将删除该备份,1=恢复 0=返回:
- if "%c%"=="%b%" goto 删除备份
- if "%c%"=="1" goto 恢复备份
- if "%c%"=="0" goto start
- goto 备份管理
- :删除备份
- cls
- echo=
- echo=
- echo %biaoti% 备份数据
- echo ==============================================================
- echo 正在操作 %b% 备份
- echo ==============================================================
- echo 正在删除备份数据 %b%
- rmdir /s /q %mulu%\backup\%b%
- echo 删除完成,任意键返回
- pause>nul
- goto 备份管理
- :恢复备份
- cls
- echo=
- echo=
- echo %biaoti% 备份数据
- echo ==============================================================
- dir /ad /b %mulu%\backup
- echo=
- echo 准备操作 %b% 备份
- echo ==============================================================
- echo 正在恢复备份数据 %b%
- xcopy /e /f /y %mulu%\backup\%b%\*.* %mulu%\data
- echo 恢复完成,任意键返回
- pause>nul
- goto 备份管理
-
-
-
- :备份不存在
- echo 备份文件 %b% 不存在,任意键重新输入
- pause>nul
- goto 备份管理
-
-
- :替换数据库内容
- if exist temp\yk.vbs del /q temp\yk.vbs>nul
- for /f %%a in ('findstr /c:"%name%" %mulu%\data\DB_list.txt') do (
- for /f "tokens=1-18 delims=*" %%b in ('echo %%a') do (
- rem 路径
- set lujing=%%b
- rem 客户单位
- set khdw=%%c
- rem 客户项目
- set khxm=%%d
- rem 具体项目
- set jtxm=%%e
- rem 项目单价
- set xmdj=%%f
- rem 项目数量
- set xmsl=%%g
- rem 金额合计
- set jehj=%%h
- rem 项目联系人
- set xmlxr=%%i
- rem 联系电话
- set lxdh=%%j
- rem 开始有新老两个变量
- rem **开具
- set lfpkj=%%k
- rem 开票日期
- set lkprq=%%l
- rem **号码
- set lfphm=%%m
- rem 结账方式
- set ljzfs=%%n
- rem 支票号码
- set lzphm=%%o
- rem 银行流水
- set lyhls=%%p
- rem 创建日期
- set lcjrq=%%q
- rem 结账日期
- set ljzrq=%%r
- rem 备注内容
- set lbznr=%%s
- ))
- if "%xfpkj%"=="" set xfpkj=%lfpkj%
- if "%xkprq%"=="" set xkprq=%lkprq%
- if "%xfphm%"=="" set xfphm=%lfphm%
- if "%xjzfs%"=="" set xjzfs=%ljzfs%
- if "%xzphm%"=="" set xzphm=%lzphm%
- if "%xyhls%"=="" set xyhls=%lyhls%
- if "%xjzrq%"=="" set xjzrq=%ljzrq%
- if "%xbznr%"=="" set xbznr=%lbznr%
- echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
- echo ' 读取文件>>temp\yk.vbs
- echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",1)>>temp\yk.vbs
- echo content = stream.readall()>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- echo ' 替换字符串>>temp\yk.vbs
- echo content = replace(content,"%lujing%*%khdw%*%khxm%*%jtxm%*%xmdj%*%xmsl%*%jehj%*%xmlxr%*%lxdh%*%lfpkj%*%lkprq%*%lfphm%*%ljzfs%*%lzphm%*%lyhls%*%lcjrq%*%ljzrq%*%lbznr%","%lujing%*%khdw%*%khxm%*%jtxm%*%xmdj%*%xmsl%*%jehj%*%xmlxr%*%lxdh%*%xfpkj%*%xkprq%*%xfphm%*%xjzfs%*%xzphm%*%xyhls%*%lcjrq%*%xjzrq%*%xbznr%")>>temp\yk.vbs
- echo ' 保存文件>>temp\yk.vbs
- echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",2)>>temp\yk.vbs
- echo call stream.write(content)>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- call temp\yk.vbs
- goto :eof
-
-
- :替换记录文件内容
- if exist temp\yk.vbs del /q temp\yk.vbs>nul
- for /f %%a in ('findstr "%chaxun%" %name%') do (set yuanjilu=%%a)
- echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
- echo ' 读取文件>>temp\yk.vbs
- echo set stream = fso.opentextfile("%name%",1)>>temp\yk.vbs
- echo content = stream.readall()>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- echo ' 替换字符串>>temp\yk.vbs
- echo content = replace(content,"%yuanjilu%","%xinjilu%")>>temp\yk.vbs
- echo ' 保存文件>>temp\yk.vbs
- echo set stream = fso.opentextfile("%name%",2)>>temp\yk.vbs
- echo call stream.write(content)>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- call temp\yk.vbs
- goto :eof
-
-
- :vbs计算加法
- if exist temp\sz.txt del /q temp\sz.txt >nul
- if exist temp\js.vbs del /q temp\js.vbs >nul
- echo A= %jisuana% >>temp\js.vbs
- echo B= %jisuanb% >>temp\js.vbs
- echo jieguo =eval(0+ A + B)>>temp\js.vbs
- echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
- call temp\js.vbs
- goto :eof
-
-
- :vbs计算减法
- if exist temp\sz.txt del /q temp\sz.txt >nul
- if exist temp\js.vbs del /q temp\js.vbs >nul
- echo A=%jisuana%>>temp\js.vbs
- echo B=%jisuanb%>>temp\js.vbs
- echo jieguo=eval(0+A-B)>>temp\js.vbs
- echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
- call temp\js.vbs
- goto :eof
-
-
- :vbs计算乘法
- if exist temp\sz.txt del /q temp\sz.txt >nul
- if exist temp\js.vbs del /q temp\js.vbs >nul
- echo A= %jisuana% >>temp\js.vbs
- echo B= %jisuanb% >>temp\js.vbs
- echo jieguo =eval(0+ A * B)>>temp\js.vbs
- echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
- call temp\js.vbs
- goto :eof
-
-
- :未结账转结账后处理文件
- rem 在数据库查找记录文件所在的work路径
- for /f "tokens=1-4 delims=\" %%a in ('findstr /c:"%wjznr%" %mulu%\data\DB_list.txt') do (
- set worknian=%%a
- set workyue=%%b
- set wenjianlujing=%%a\%%b\%%c\%%d)
- rem 开始减法计算wjz合计总金额
- for /f %%a in (%mulu%\data\wjz\heji.jl) do (set jisuana=%%a)
- for /f "tokens=2 delims==" %%a in ('findstr /b "金额合计=" %mulu%\data\wjz\%wjznr%.txt') do (set jisuanb=%%a)
- call:vbs计算减法
- move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
-
- rem 如有则删除wwc目录下记录文件
- if exist %mulu%\data\wwc\%wjznr%.txt del /q %mulu%\data\wwc\%wjznr%.txt
-
- rem 拷贝wjz目录下记录文件到work对应的路径下
- copy /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%wenjianlujing% >nul
-
- rem 如没有yjz目录(第一次结账的情况下)就建立yjz目录
- if not exist %mulu%\data\yjz md %mulu%\data\yjz
-
- rem 移动wjz目录下文件到yjz目录下
- move /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\yjz >nul
-
- rem 开始加法计算yjz合计总金额
- if exist %mulu%\data\yjz\heji.jl goto 计算已结账金额
- echo %jisuanb%>%mulu%\data\yjz\heji.jl
- goto :eof
-
- :计算已结账金额
- for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jisuana=%%a)
- call:vbs计算加法
- move /y temp\sz.txt %mulu%\data\yjz\heji.jl>nul
- goto :eof
-
-
-
- :没有未结账记录
- cls
- echo=
- echo=
- echo %biaoti% 查询未结账记录
- echo ==============================================================
- echo 没有未结账记录!
- echo ==============================================================
- pause
- goto start
-
-
- :编辑文件开始
- setlocal enabledelayedexpansion
- if exist temp\new.txt del /q temp\new.txt>nul
- if exist temp\bjwjxmdj.xiugai del /q temp\bjwjxmdj.xiugai>nul
- if exist temp\bjwj.jinehejigaibian del /q temp\bjwj.jinehejigaibian>nul
- cls
- echo=
- echo=
- echo %biaoti% 编辑记录文件内容
- echo ==============================================================
- for /f "delims=" %%a in (%编辑文件路径含后缀名%) do (
- for /f "tokens=1,2 delims==" %%b in ('echo %%a') do (
- set denghaozuobian=%%b
- set denghaoyoubian=%%c
- set xiangmuxiugai=
- cls
- echo=
- echo=
- echo %biaoti% 编辑记录文件内容
- echo ==============================================================
- echo 新文件内容
- echo=
- if exist temp\new.txt type temp\new.txt
- echo ==============================================================
- if exist temp\bjwj.jinehejijisuan set denghaoyoubian=!xjehjsz!&&set 修改文件金额合计=!xjehjsz!&&del /q temp\bjwj.jinehejijisuan>nul
- if exist temp\bjwj.xiangmudanjiayixiugai set xiangmuxiugai=!denghaoyoubian!&&del /q temp\bjwj.xiangmudanjiayixiugai >nul
- echo !denghaozuobian!=!denghaoyoubian!
- echo=
- set /p xiangmuxiugai=请输入以上项目的修改结果,如不改请直接回车,0=返回:
- if "!xiangmuxiugai!"=="0" goto 编辑结束
- if "!denghaozuobian!"=="项目单价" set xxmdjsz=!denghaoyoubian!
- if "!denghaozuobian!"=="项目数量" set xxmslsz=!denghaoyoubian!
- if "!xiangmuxiugai!"=="" (echo !denghaozuobian!=!denghaoyoubian!>>temp\new.txt
- ) else (
- echo %%b=!xiangmuxiugai!>>temp\new.txt
- if "%%b"=="客户单位" set xkhdw=客户单位=!xiangmuxiugai!
- if "%%b"=="客户项目" set xkhxm=客户项目=!xiangmuxiugai!
- if "%%b"=="具体项目" set xjtxm=具体项目=!xiangmuxiugai!
- if "%%b"=="项目单价" set xxmdj=项目单价=!xiangmuxiugai!&&set xxmdjsz=!xiangmuxiugai!&&echo 123>temp\bjwj.xiangmudanjiayixiugai
- if "%%b"=="项目数量" set xxmsl=项目数量=!xiangmuxiugai!&&set xxmslsz=!xiangmuxiugai!&&call:编辑文件中查询金额合计是否一致
- if "%%b"=="金额合计" set xjehj=金额合计=!xiangmuxiugai!
- if "%%b"=="项目联系人" set xxmlxr=项目联系人=!xiangmuxiugai!
- if "%%b"=="联系电话" set xlxdh=联系电话=!xiangmuxiugai!
- if "%%b"=="**开具" set xfpkj=**开具=!xiangmuxiugai!
- if "%%b"=="开票日期" set xkprq=开票日期=!xiangmuxiugai!
- if "%%b"=="**号码" set xfphm=**号码=!xiangmuxiugai!
- if "%%b"=="结账方式" set xjzfs=结账方式=!xiangmuxiugai!
- if "%%b"=="支票号码" set xzphm=支票号码=!xiangmuxiugai!
- if "%%b"=="银行流水" set xyhls=银行流水=!xiangmuxiugai!
- if "%%b"=="创建日期" set xcjrq=创建日期=!xiangmuxiugai!
- if "%%b"=="结账日期" set xjzrq=结账日期=!xiangmuxiugai!)
- for /f %%d in ('findstr /c:"%编辑文件全名%" %mulu%\data\DB_list.txt') do (
- for /f "tokens=1-17 delims=*" %%e in ('echo %%d') do (
- rem 路径
- set lujing=%%e
- rem 客户单位
- set lkhdw=%%f
- rem 客户项目
- set lkhxm=%%g
- rem 具体项目
- set ljtxm=%%h
- rem 项目单价
- set lxmdj=%%i
- rem 项目数量
- set lxmsl=%%j
- rem 金额合计
- set ljehj=%%k
- rem 项目联系人
- set lxmlxr=%%l
- rem 联系电话
- set llxdh=%%m
- rem **开具
- set lfpkj=%%n
- rem 开票日期
- set lkprq=%%o
- rem **号码
- set lfphm=%%p
- rem 结账方式
- set ljzfs=%%q
- rem 支票号码
- set lzphm=%%r
- rem 银行流水
- set lyhls=%%s
- rem 创建日期
- set lcjrq=%%t
- rem 结账日期
- set ljzrq=%%u))
- if "!xkhdw!"=="" set xkhdw=!lkhdw!
- if "!xkhxm!"=="" set xkhxm=!lkhxm!
- if "!xjtxm!"=="" set xjtxm=!ljtxm!
- if "!xxmdj!"=="" set xxmdj=!lxmdj!
- if "!xxmsl!"=="" set xxmsl=!lxmsl!
- if "!xjehj!"=="" set xjehj=!ljehj!
- if "!xxmlxr!"=="" set xxmlxr=!lxmlxr!
- if "!xlxdh!"=="" set xlxdh=!llxdh!
- if "!xfpkj!"=="" set xfpkj=!lfpkj!
- if "!xkprq!"=="" set xkprq=!lkprq!
- if "!xfphm!"=="" set xfphm=!lfphm!
- if "!xjzfs!"=="" set xjzfs=!ljzfs!
- if "!xzphm!"=="" set xzphm=!lzphm!
- if "!xyhls!"=="" set xyhls=!lyhls!
- if "!xcjrq!"=="" set xcjrq=!lcjrq!
- if "!xjzrq!"=="" set xjzrq=!ljzrq!))
- if exist temp\yk.vbs del /q temp\yk.vbs>nul
- :询问是否更新
- set a=
- cls
- echo=
- echo=
- echo %biaoti% 编辑记录文件内容
- echo ==============================================================
- type temp\new.txt
- echo ==============================================================
- set /p a=确定更新文件【1=确定 0=返回】
- if "%a%"=="0" goto 查询未结账记录
- if "%a%"=="1" goto 确定更新文件
- goto 询问是否更新
-
- :确定更新文件
- rem 确定文件所在work目录下路径
- for /f "tokens=1-4 delims=\" %%a in ('findstr /c:"%编辑文件全名%" %mulu%\data\DB_list.txt') do (
- set worklujing=%%a\%%b\%%c\%%d
- set jineworklujing=%%a\%%b
- )
- rem 更换数据库
- echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
- echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",1)>>temp\yk.vbs
- echo content = stream.readall()>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- echo content = replace(content,"%lujing%*%lkhdw%*%lkhxm%*%ljtxm%*%lxmdj%*%lxmsl%*%ljehj%*%lxmlxr%*%llxdh%*%lfpkj%*%lkprq%*%lfphm%*%ljzfs%*%lzphm%*%lyhls%*%lcjrq%*%ljzrq%","%lujing%*%xkhdw%*%xkhxm%*%xjtxm%*%xxmdj%*%xxmsl%*%xjehj%*%xxmlxr%*%xlxdh%*%xfpkj%*%xkprq%*%xfphm%*%xjzfs%*%xzphm%*%xyhls%*%xcjrq%*%xjzrq%")>>temp\yk.vbs
- echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",2)>>temp\yk.vbs
- echo call stream.write(content)>>temp\yk.vbs
- echo call stream.close()>>temp\yk.vbs
- call temp\yk.vbs
- if exist temp\yk.vbs del /q temp\yk.vbs>nul
-
- rem 拷贝文件到wwc
- if exist %mulu%\data\wwc\%编辑文件全名% copy /y temp\new.txt %mulu%\data\wwc\%编辑文件全名% >nul
-
- rem 拷贝文件到yjz
- if not exist %mulu%\data\yjz\%编辑文件全名% goto 拷贝文件到wjz
- copy /y temp\new.txt %mulu%\data\yjz\%编辑文件全名% >nul
- if not exist temp\bjwj.jinehejigaibian goto 拷贝文件到wjz
- rem 开始计算yjz金额变换
- for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jisuana=%%a)
- for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
- for /f "tokens=2 delims==" %%b in ('echo %%a') do (
- set jisuanb=%%b
- )
- )
- call:vbs计算减法
- for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
- set jisuanb=%修改文件金额合计%
- call:vbs计算加法
- move /y temp\sz.txt %mulu%\data\yjz\heji.jl >nul
-
- rem 拷贝文件到wjz
- :拷贝文件到wjz
- if exist %mulu%\data\wjz\%编辑文件全名% copy /y temp\new.txt %mulu%\data\wjz\%编辑文件全名% >nul
- if not exist temp\bjwj.jinehejigaibian goto 移动文件到work
- rem 开始计算wjz金额变换
- for /f %%a in (%mulu%\data\wjz\heji.jl) do (set jisuana=%%a)
- for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
- for /f "tokens=2 delims==" %%b in ('echo %%a') do (
- set jisuanb=%%b
- )
- )
- call:vbs计算减法
- for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
- set jisuanb=%修改文件金额合计%
- call:vbs计算加法
- move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
-
- rem 开始计算work金额变换
- for /f %%a in (%mulu%\data\work\%jineworklujing%\heji.jl) do (set jisuana=%%a)
- for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
- for /f "tokens=2 delims==" %%b in ('echo %%a') do (
- set jisuanb=%%b
- )
- )
- call:vbs计算减法
- if exist temp\js.vbs del /q temp\js.vbs >nul
- for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
- set jisuanb=%修改文件金额合计%
- call:vbs计算加法
- if exist temp\js.vbs del /q temp\js.vbs >nul
- move /y temp\sz.txt %mulu%\data\work\%jineworklujing%\heji.jl >nul
- rem 移动文件到work
- :移动文件到work
- move /y temp\new.txt %mulu%\data\work\%worklujing%\%编辑文件全名% >nul
-
- :编辑结束
- goto :eof
-
-
- :编辑文件中查询金额合计是否一致
- set jisuana=%xxmdjsz%
- set jisuanb=%xxmslsz%
- call:vbs计算乘法
- for /f %%a in (temp\sz.txt) do (set xjehjsz=%%a)
- for /f "tokens=2 delims==" %%a in ('findstr /b "金额合计" %编辑文件路径含后缀名%') do (set ljehj=%%a)
- if "%ljehj%"=="%xjehjsz%" goto :eof
- echo 123>temp\bjwj.jinehejijisuan
- echo 123>temp\bjwj.jinehejigaibian
- goto :eof
-
- :end
复制代码
作者: foxbobo 时间: 2020-6-29 09:05
很强,虽然不在有用的可能。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |