批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[其他] 简单记录.bat

本帖最后由 binghejin 于 2020-6-29 15:24 编辑

因自己的工作室需要一套能简单记录项目及项目的完成、结账情况,找不到合适的,就自己编写了一套,经过一段时间的使用,感觉比较稳定了,现在放上来给有相同需求的同学使用,发现BUG请跟帖,万分感谢。
目前已经可以多机器联网使用了,当然您也可以单机使用,代码一开始的时候,需要您根据自身需求填写2处变量即可,也就是第15、19行。
  1. :一开始
  2. @echo off
  3. rem MODE con: COLS=120 LINES=200
  4. color 8f
  5. cls
  6. echo=
  7. echo 正在启动.....
  8. ::变量参数
  9. set nian=%date:~0,4%
  10. set yue=%date:~5,2%
  11. set ri=%date:~8,2%
  12. ::下一行设置批处理工作目录地址,最后不加斜杠,例如:d:\工作目录,如有内网可用的服务器,并且目录权限为全开的话,可以直接设置为网络路径,最后不加斜杠,例如:\\192.168.1.1\工作目录
  13. set mulu=
  14. ::下一行为版本号,是用来升级使用的,不要修改
  15. set banben=1.20200628
  16. ::下一行为你的单位名称,根据需要修改等号后面的内容
  17. set mingchen=
  18. set biaoti=%mingchen% V%banben%
  19. title %biaoti%
  20. cls
  21. echo=
  22. echo 正在启动...............
  23. del /q temp\*.* >nul
  24. if exist %mulu%\data\DB_list.txt goto 一
  25. :一
  26. cls
  27. echo=
  28. echo 正在启动....................
  29. for /f %%C in (%mulu%\data\banben.txt) do (set wangluobanben=%%C)
  30. if %banben% lss %wangluobanben% goto 升级
  31. goto 111
  32. :升级
  33. cls
  34. echo=
  35. echo 检测到有新版本,正在升级......
  36. echo ==============================================================
  37. echo 检测到新版本,按任意键开始升级...
  38. pause>nul
  39. echo echo 正在升级... >>temp\sj.bat
  40. echo copy /y %mulu%\data\jl.bat^>nul >>temp\sj.bat
  41. echo echo 升级完成... >>temp\sj.bat
  42. echo pause>nul >>temp\sj.bat
  43. echo jl.bat >>temp\sj.bat
  44. temp\sj.bat
  45. :111
  46. cls
  47. echo=
  48. echo 正在启动........................................
  49. if exist %mulu%\data\kehu.ini goto next2
  50. ::没有kehu.ini文件,开始创建...
  51. cls
  52. set /p kehu=请输入常用客户详细名称:
  53. for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastlinekh=%%~a)
  54. set /a xuhao=%lastlinekh%+1
  55. echo %xuhao%=%kehu%>>%mulu%\data\kehu.ini
  56. :next2
  57. cls
  58. echo=
  59. echo 正在启动.....................................................................
  60. if exist %mulu%\data\xm.ini goto next3
  61. ::没有xm.ini文件,开始创建...
  62. cls
  63. set /p xiangmu=请输入常用项目详细名称:
  64. for /f "delims=" %%b in (%mulu%\data\xm.ini) do (set lastlinexm=%%~b)
  65. set /a xuhao=%lastlinexm%+1
  66. echo %xuhao%=%xiangmu%>>%mulu%\data\xm.ini
  67. :next3
  68. cls
  69. echo=
  70. echo 正在启动....................................................................................................
  71. if not exist temp md temp
  72. if not exist %mulu%\data md %mulu%\data
  73. del /q temp\*.* >nul
  74. :start
  75. cls
  76. call:fm
  77. set /p a=请选择:
  78. if "%a%"=="1" goto 工作记录
  79. if "%a%"=="2" goto 查询未完成项目记录
  80. if "%a%"=="3" goto 查询未结账记录
  81. if "%a%"=="4" goto 查询项目记录
  82. if "%a%"=="5" goto 统计数据
  83. if "%a%"=="6" goto 刷新数据库
  84. if "%a%"=="7" goto 备份
  85. if "%a%"=="0" goto end
  86. goto start
  87. :工作记录
  88. cls
  89. echo=
  90. echo=
  91. echo %biaoti% 工作项目记录
  92. echo ==============================================================
  93. type %mulu%\data\kehu.ini
  94. echo ==============================================================
  95. echo=
  96. set /p b=请输入客户单位快捷数字,0=返回:
  97. echo %b%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto dwyes||goto dwno
  98. :dwyes
  99. if "%b%"=="0" goto start
  100. echo %b%|findstr %b%= "%mulu%\data\kehu.ini" >nul&&goto dwyou||goto 工作记录
  101. :dwyou
  102. for /f "tokens=2 delims==" %%c in ('findstr /b "%b%=" %mulu%\data\kehu.ini') do (set khdw=%%c)
  103. :xm
  104. cls
  105. echo=
  106. echo=
  107. echo %biaoti% 工作项目记录
  108. echo ==============================================================
  109. type %mulu%\data\xm.ini
  110. echo ==============================================================
  111. echo 客户单位=%khdw%
  112. echo=
  113. set /p d=请输入项目快捷数字,0=返回:
  114. echo %d%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto xmyes||goto xmno
  115. :xmyes
  116. if "%d%"=="0" goto start
  117. echo %d%|findstr %d%= "%mulu%\data\xm.ini" >nul&&goto xmyou||goto xm
  118. :xmyou
  119. for /f "tokens=2 delims==" %%e in ('findstr /b "%d%=" %mulu%\data\xm.ini') do (set xm=%%e)
  120. cls
  121. echo=
  122. echo=
  123. echo %biaoti% 工作项目记录
  124. echo ==============================================================
  125. echo 客户单位=%khdw%
  126. echo 客户项目=%xm%
  127. echo ==============================================================
  128. echo=
  129. set /p dj=请输入单价:
  130. cls
  131. echo=
  132. echo=
  133. echo %biaoti% 工作项目记录
  134. echo ==============================================================
  135. echo 客户单位=%khdw%
  136. echo 客户项目=%xm%
  137. echo 项目单价=%dj%
  138. echo ==============================================================
  139. echo=
  140. set /p sl=请输入数量:
  141. cls
  142. echo=
  143. echo=
  144. echo %biaoti% 工作项目记录
  145. echo ==============================================================
  146. echo 客户单位=%khdw%
  147. echo 客户项目=%xm%
  148. echo 项目单价=%dj%
  149. echo 项目数量=%sl%
  150. echo ==============================================================
  151. echo=
  152. set /p bz=请输入备注:
  153. echo A= %dj% >>temp\js.vbs
  154. echo B= %sl% >>temp\js.vbs
  155. echo jieguo =eval(0+ A * B)>>temp\js.vbs
  156. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  157. call temp\js.vbs
  158. del temp\js.vbs
  159. for /f %%i in (temp\sz.txt) do (set heji=%%i)
  160. del temp\sz.txt
  161. cls
  162. echo=
  163. echo=
  164. echo %biaoti% 工作项目记录
  165. echo ==============================================================
  166. echo 客户单位=%khdw%
  167. echo 客户项目=%xm%
  168. echo 具体内容=%bz%
  169. echo 项目单价=%dj%
  170. echo 项目数量=%sl%
  171. echo 金额合计=%heji%
  172. echo ==============================================================
  173. echo=
  174. set /p h=请输入甲方项目联系人姓名:
  175. cls
  176. echo=
  177. echo=
  178. echo %biaoti% 工作项目记录
  179. echo ==============================================================
  180. echo 客户单位=%khdw%
  181. echo 客户项目=%xm%
  182. echo 具体内容=%bz%
  183. echo 项目单价=%dj%
  184. echo 项目数量=%sl%
  185. echo 金额合计=%heji%
  186. echo 项目联系人=%h%
  187. echo ==============================================================
  188. echo=
  189. set /p i=请输入甲方项目联系人%h%的电话:
  190. cls
  191. echo=
  192. echo=
  193. echo %biaoti% 工作项目记录
  194. echo ==============================================================
  195. echo 客户单位=%khdw%
  196. echo 客户项目=%xm%
  197. echo 具体内容=%bz%
  198. echo 项目单价=%dj%
  199. echo 项目数量=%sl%
  200. echo 金额合计=%heji%
  201. echo 项目联系人=%h%
  202. echo 联系电话=%i%
  203. echo **开具=未开
  204. echo 创建日期=%nian%年%yue%月%ri%日
  205. echo ==============================================================
  206. echo 正在写入...
  207. if not exist %mulu%\data\work md %mulu%\data\work
  208. if not exist %mulu%\data\work\%nian% md %mulu%\data\work\%nian%
  209. if not exist %mulu%\data\work\%nian%\%yue% md %mulu%\data\work\%nian%\%yue%
  210. if not exist %mulu%\data\work\%nian%\%yue%\%ri% md %mulu%\data\work\%nian%\%yue%\%ri%
  211. if not exist %mulu%\data\work\%nian%\%yue%\%ri%\%khdw% md %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%
  212. echo 客户单位=%khdw%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  213. echo 客户项目=%xm%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  214. echo 具体项目=%bz%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  215. echo 项目单价=%dj%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  216. echo 项目数量=%sl%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  217. echo 金额合计=%heji%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  218. echo **开具=未开>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  219. echo 项目联系人=%h%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  220. echo 联系电话=%i%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  221. echo 创建日期=%nian%年%yue%月%ri%日>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  222. echo %nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt*客户单位=%khdw%*客户项目=%xm%*项目名称=%bz%*项目单价=%dj%*项目数量=%sl%*金额合计=%heji%***开具=未开*项目联系人=%h%*联系电话=%i%*开票日期=***号码*结账方式=*支票号码=*结账日期>>%mulu%\data\DB_list.txt
  223. if exist %mulu%\data\work\%nian%\%yue%\heji.jl goto 计算合计金额
  224. echo %heji%>>%mulu%\data\work\%nian%\%yue%\heji.jl
  225. goto 合计金额创建成功继续
  226. :计算合计金额
  227. for /f %%v in (%mulu%\data\work\%nian%\%yue%\heji.jl) do (
  228. set hjje=%%v
  229. )
  230. echo A= %hjje% >>temp\js.vbs
  231. echo B= %heji% >>temp\js.vbs
  232. echo jieguo =eval(0+ A + B)>>temp\js.vbs
  233. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  234. call temp\js.vbs
  235. del temp\js.vbs >nul
  236. del %mulu%\data\work\%nian%\%yue%\heji.jl >nul
  237. move temp\sz.txt %mulu%\data\work\%nian%\%yue%\heji.jl >nul
  238. :合计金额创建成功继续
  239. if not exist %mulu%\data\wjz md %mulu%\data\wjz
  240. copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wjz >nul
  241. if exist %mulu%\data\wjz\heji.jl goto 计算未结账合计金额
  242. echo %heji%>>%mulu%\data\wjz\heji.jl
  243. goto 未结账合计金额创建成功继续
  244. :计算未结账合计金额
  245. for /f %%w in (%mulu%\data\wjz\heji.jl) do (
  246. set hjje=%%w
  247. )
  248. echo A= %hjje% >>temp\js.vbs
  249. echo B= %heji% >>temp\js.vbs
  250. echo jieguo =eval(0+ A + B)>>temp\js.vbs
  251. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  252. call temp\js.vbs
  253. del temp\js.vbs >nul
  254. del %mulu%\data\wjz\heji.jl >nul
  255. move temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  256. :未结账合计金额创建成功继续
  257. if not exist %mulu%\data\wwc md %mulu%\data\wwc
  258. copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wwc >nul
  259. cls
  260. echo=
  261. echo=
  262. echo %biaoti% 工作项目记录
  263. echo ==============================================================
  264. echo 客户单位=%khdw%
  265. echo 客户项目=%xm%
  266. echo 具体内容=%bz%
  267. echo 项目单价=%dj%
  268. echo 项目数量=%sl%
  269. echo 金额合计=%heji%
  270. echo 项目联系人=%h%
  271. echo 联系电话=%i%
  272. echo **开具=未开
  273. echo 创建日期=%nian%年%yue%月%ri%日
  274. echo ==============================================================
  275. echo=
  276. echo 正在写入...ok
  277. pause
  278. goto start
  279. :dwno
  280. set j=0
  281. cls
  282. echo=
  283. echo=
  284. echo %biaoti% 工作项目记录
  285. echo ==============================================================
  286. type %mulu%\data\kehu.ini
  287. echo ==============================================================
  288. echo 您输入的单位名称 %b%,没有记录,是否记录?
  289. echo=
  290. echo 1=记录 其他=返回
  291. set /p j=
  292. if "%j%"=="" goto dwmeiyou
  293. if "%j%"=="1" goto dwchuangjian
  294. goto start
  295. :dwchuangjian
  296. for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastline=%%~a)
  297. echo %lastline%>temp\dwmc.tmp
  298. for /f "tokens=1 delims==" %%i in (temp\dwmc.tmp) do (set shuzi=%%i)
  299. set/a xuhao=%shuzi%+1
  300. echo %xuhao%=%b%>>%mulu%\data\kehu.ini
  301. set b=%xuhao%
  302. goto dwyou
  303. :xmno
  304. set m=0
  305. cls
  306. echo=
  307. echo=
  308. echo %biaoti% 工作项目记录
  309. echo ==============================================================
  310. type %mulu%\data\xm.ini
  311. echo ==============================================================
  312. echo 您输入的项目名称 %d%,没有记录,是否记录?
  313. echo=
  314. echo 1=记录 其他=返回
  315. set /p m=
  316. if "%m%"=="" goto xmmeiyou
  317. if "%m%"=="1" goto xmchuangjian
  318. goto start
  319. :xmchuangjian
  320. for /f "delims=" %%a in (%mulu%\data\xm.ini) do (set lastline=%%~a)
  321. echo %lastline%>temp\xmmc.tmp
  322. for /f "tokens=1 delims==" %%i in (temp\xmmc.tmp) do (set shuzi=%%i)
  323. set/a xuhao=%shuzi%+1
  324. echo %xuhao%=%d%>>%mulu%\data\xm.ini
  325. set d=%xuhao%
  326. goto xmyes
  327. :没有未完成项目记录
  328. cls
  329. echo=
  330. echo=
  331. echo %biaoti% 查询未完成项目记录
  332. echo ==============================================================
  333. echo 没有未完成的工作项目记录!
  334. echo ==============================================================
  335. echo=
  336. pause
  337. goto start
  338. :查询未完成项目记录
  339. if not exist %mulu%\data\wwc\*.txt goto 没有未完成项目记录
  340. if exist temp\wwc*.* del /q temp\wwc*.* >nul
  341. dir /b /on %mulu%\data\wwc\*.txt>temp\wwc.tmp
  342. echo %mulu%\data\wwc\*.txt
  343. for /f "tokens=1 delims=." %%H in (temp\wwc.tmp) do (
  344. echo %%H>>temp\wwc.ttt
  345. )
  346. findstr /n .* temp\wwc.ttt>>temp\wwc.txt
  347. del temp\wwc.ttt>nul
  348. del temp\wwc.tmp>nul
  349. cls
  350. echo=
  351. echo=
  352. echo %biaoti% 查询未完成项目记录
  353. echo ==============================================================
  354. type temp\wwc.txt
  355. echo ==============================================================
  356. echo=
  357. set /p p=输入序号以查看详情,0=返回:
  358. call:zzcl
  359. if "%p%"=="0" goto start
  360. for /f "tokens=2 delims=:" %%q in ('findstr /b "%p%:" temp\wwc.txt') do (set wwcnr=%%q)
  361. cls
  362. echo=
  363. echo=
  364. echo %biaoti% 查询未完成项目记录
  365. echo ==============================================================
  366. type %mulu%\data\wwc\%wwcnr%.txt
  367. echo ==============================================================
  368. echo=
  369. set /p r=X=完成该项目,D=删除该项目,其他键返回:
  370. if "%r%"=="x" goto 完成该项目
  371. if "%r%"=="d" goto 删除该项目
  372. goto 查询未完成项目记录
  373. :删除该项目
  374. cls
  375. echo=
  376. echo=
  377. echo %biaoti% 查询未完成项目记录
  378. echo ==============================================================
  379. type %mulu%\data\wwc\%wwcnr%.txt
  380. echo ==============================================================
  381. echo=
  382. set /p aa=删除该项目后,会同步删除该项目所有对应数据,1=确定,其他键返回:
  383. if "%aa%"=="1" goto 确定删除该项目
  384. goto 查询未完成项目记录
  385. :确定删除该项目
  386. copy %mulu%\data\wwc\%wwcnr%.txt temp\%wwcnr%.txt>nul
  387. cls
  388. echo=
  389. echo=
  390. echo %biaoti% 查询未完成项目记录
  391. echo ==============================================================
  392. type %mulu%\data\wwc\%wwcnr%.txt
  393. echo ==============================================================
  394. echo=
  395. echo 正在删除中...
  396. ::从数据库中读取要删除文件地址、客户单位、项目金额合计
  397. for /f %%a in ('findstr "%wwcnr%.txt" %mulu%\data\DB_list.txt') do (
  398. for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
  399. set wenjiandizhi=%%b
  400. for /f "tokens=2 delims=*" %%c in ('echo %%a') do (
  401. for /f "tokens=2 delims==" %%d in ('echo %%c') do (
  402. set kehudanwei=%%d
  403. for /f "tokens=7 delims=*" %%e in ('echo %%a') do (
  404. for /f "tokens=2 delims==" %%f in ('echo %%e') do (
  405. set xmjineheji=%%f
  406. ))))))
  407. ::从文件地址读取文件所在的年目录与月目录
  408. for /f "tokens=1-3 delims=\" %%a in ('echo %wenjiandizhi%') do (
  409. set xmnian=%%a
  410. set xmyue=%%b
  411. set xmri=%%c
  412. )
  413. ::读取work下相关月份下的金额合计数值
  414. for /f %%a in (%mulu%\data\work\%xmnian%\%xmyue%\heji.jl) do (set workheji=%%a)
  415. ::读取wjz目录下的金额合计数值
  416. for /f %%a in (%mulu%\data\wjz\heji.jl) do (set wjzheji=%%a)
  417. ::计算work目录内相关月份合计金额
  418. if exist %mulu%\data\work\%xmnian%\%xmyue%\heji.jl del %mulu%\data\work\%xmnian%\%xmyue%\heji.jl>nul
  419. if exist temp\js.vbs del temp\js.vbs>nul
  420. if exist temp\sz.txt del temp\sz.txt>nul
  421. echo A= %workheji% >>temp\js.vbs
  422. echo B= %xmjineheji% >>temp\js.vbs
  423. echo jieguo =eval(0+ A - B)>>temp\js.vbs
  424. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  425. call temp\js.vbs
  426. del temp\js.vbs>nul
  427. move temp\sz.txt %mulu%\data\work\%xmnian%\%xmyue%\heji.jl>nul
  428. ::计算未结账合计金额
  429. if exist %mulu%\data\wjz\heji.jl del %mulu%\data\wjz\heji.jl>nul
  430. if exist temp\js.vbs del temp\js.vbs>nul
  431. if exist temp\sz.txt del temp\sz.txt>nul
  432. echo A= %wjzheji% >>temp\js.vbs
  433. echo B= %xmjineheji% >>temp\js.vbs
  434. echo jieguo =eval(0+ A - B)>>temp\js.vbs
  435. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  436. call temp\js.vbs
  437. del temp\js.vbs>nul
  438. move temp\sz.txt %mulu%\data\wjz\heji.jl>nul
  439. ::删除work目录下对应文件,判断该目录下是否还有其他文件,如没有,则删除目录。
  440. del %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%\%wwcnr%.txt>nul
  441. rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%>nul
  442. rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%>nul
  443. ::删除wwc目录下文件
  444. if exist %mulu%\data\wwc\%wwcnr%.txt del %mulu%\data\wwc\%wwcnr%.txt>nul
  445. ::删除wjz目录下文件
  446. if exist %mulu%\data\wjz\%wwcnr%.txt del %mulu%\data\wjz\%wwcnr%.txt>nul
  447. ::从数据库中删除相关行
  448. find/v "%wenjiandizhi%" %mulu%\data\DB_list.txt>>temp\ls.jl
  449. pause
  450. move /y temp\ls.jl %mulu%\data\DB_list.txt >nul
  451. cls
  452. echo=
  453. echo=
  454. echo %biaoti% 查询未完成项目记录
  455. echo ==============================================================
  456. type temp\%wwcnr%.txt
  457. echo ==============================================================
  458. echo=
  459. del temp\%wwcnr%.txt>nul
  460. echo 正在删除中...ok
  461. pause
  462. goto 查询未完成项目记录
  463. :完成该项目
  464. cls
  465. echo=
  466. echo=
  467. echo %biaoti% 查询未完成项目记录
  468. echo ==============================================================
  469. type %mulu%\data\wwc\%wwcnr%.txt
  470. echo ==============================================================
  471. del %mulu%\data\wwc\%wwcnr%.txt>nul
  472. echo=
  473. echo 项目完成...ok
  474. echo=
  475. set /p v=1=同步完成未结账记录,其他键返回:
  476. if "%v%"=="1" goto 同步未结账记录
  477. goto 查询未完成项目记录
  478. :没有未结账记录
  479. cls
  480. echo=
  481. echo=
  482. echo %biaoti% 查询未结账记录
  483. echo ==============================================================
  484. echo 没有未结账记录!
  485. echo ==============================================================
  486. echo=
  487. pause
  488. goto start
  489. :查询未结账记录
  490. if not exist %mulu%\data\wjz\*.txt goto 没有未结账记录
  491. set n=0
  492. if exist temp\wjz*.* del /q temp\wjz*.* >nul
  493. dir /b /on %mulu%\data\wjz\*.txt>temp\wjz.tmp
  494. for /f %%J in (%mulu%\data\wjz\heji.jl) do (set wjzje=%%J)
  495. :过滤关键词成功
  496. for /f "tokens=1 delims=." %%I in (temp\wjz.tmp) do (
  497. echo %%I>>temp\wjz.ttt
  498. )
  499. del temp\wjz.tmp>nul
  500. for /f %%m in (temp\wjz.ttt) do (
  501. for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %mulu%\data\wjz\%%m.txt') do (
  502. echo %%m.%%L>>temp\wjz.je
  503. )
  504. )
  505. for /f %%p in ('findstr /n .* temp\wjz.je') do (
  506. echo %%p>>temp\wjz.txt
  507. echo=>>temp\wjz.txt
  508. )
  509. del temp\wjz.je>nul
  510. :继续查询
  511. cls
  512. echo=
  513. echo=
  514. echo %biaoti% 查询未结账记录
  515. echo ==============================================================
  516. type temp\wjz.txt
  517. echo=
  518. echo 合计:%wjzje% 元。
  519. echo ==============================================================
  520. echo=
  521. set /p s=输入序号或关键词,0=返回:
  522. if "%s%"=="0" goto start
  523. echo %s%|findstr "1 2 3 4 5 6 7 8 9" >nul&&goto 序号查看详情||goto 过滤关键词
  524. :序号查看详情
  525. for /f "tokens=2 delims=:" %%t in ('findstr /b "%s%:" temp\wjz.txt') do (
  526. for /f "tokens=1 delims=." %%u in ('echo %%t') do (
  527. set wjznr=%%u
  528. )
  529. )
  530. :**开具状态修改后显示
  531. cls
  532. echo=
  533. echo=
  534. echo %biaoti% 查询未结账记录
  535. echo ==============================================================
  536. type %mulu%\data\wjz\%wjznr%.txt
  537. echo ==============================================================
  538. echo=
  539. echo E=编辑该项 D=删除该项
  540. echo X=将该项目转为已结账
  541. echo Z=将**开具信息转为已开。
  542. echo 其他键=返回。
  543. echo -----------------------------
  544. set /p u=请选择:
  545. if "%u%"=="e" goto 编辑该项
  546. if "%u%"=="d" goto 删除该项
  547. if "%u%"=="x" goto 转为已结账
  548. if "%u%"=="z" goto 转为已开
  549. goto 继续查询
  550. :编辑该项
  551. %windir%\system32\notepad.exe %mulu%\data\wjz\%wjznr%.txt
  552. goto 序号查看详情
  553. :删除该项
  554. cls
  555. echo=
  556. echo=
  557. echo %biaoti% 查询未结账记录
  558. echo ==============================================================
  559. type %mulu%\data\wjz\%wjznr%.txt
  560. echo ==============================================================
  561. set n=0
  562. for /f %%b in ('type %mulu%\data\wjz\%wjznr%.txt') do (
  563. for /f  "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%wjznr%.txt') do (
  564. set xinwjz=%%c
  565. )
  566. )
  567. for /f %%d in (%mulu%\data\wjz\heji.jl)do (set oldwjz=%%d)
  568. echo A= %oldwjz% >>temp\js.vbs
  569. echo B= %xinwjz% >>temp\js.vbs
  570. echo jieguo =eval(0+ A - B)>>temp\js.vbs
  571. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  572. call temp\js.vbs
  573. del temp\js.vbs
  574. move temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  575. del %mulu%\data\wjz\%wjznr%.txt >nul
  576. if exist %mulu%\data\wjz\%wjznr%.txt goto 删除失败
  577. echo=
  578. echo 以上项目已删除,金额已重新计算...
  579. pause
  580. goto 查询未结账记录
  581. :删除失败
  582. echo 删除 %wjznr% 记录失败。。。
  583. pause
  584. goto 查询未结账记录
  585. :转为已开
  586. set 开票日期=
  587. echo=
  588. set /p 开票日期=请输入**的开具日期(不开**请输入bk,直接回车日期为%nian%%yue%%ri%):
  589. if "%**号码%"=="bk" goto 不开**
  590. if "%开票日期%"=="" set 开票日期=%nian%%yue%%ri%
  591. echo %开票日期%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是日期||goto 不是日期
  592. :不是日期
  593. echo 日期格式输入错误,请重新输入,例如:%nian%%yue%%ri%
  594. pause
  595. goto 序号查看详情
  596. :是日期
  597. set /p **号码=请输入开具的**号码(不开**请输入bk):
  598. if "%**号码%"=="bk" goto 不开**
  599. echo %**号码%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是号码||goto 不是号码
  600. :不是号码
  601. echo 号码格式输入错误,请重新输入,例如:05476533
  602. pause
  603. goto 序号查看详情
  604. :不开**
  605. set **号码=不开**
  606. :是号码
  607. type %mulu%\data\wjz\%wjznr%.txt|findstr "**开具=" >nul&&goto fapiaoyou||goto fapiaomeiyou
  608. :fapiaomeiyou
  609. echo **开具=已开>>%mulu%\data\wjz\%wjznr%.txt
  610. echo 开票日期=%开票日期%>>%mulu%\data\wjz\%wjznr%.txt
  611. echo **号码=%**号码%>>%mulu%\data\wjz\%wjznr%.txt
  612. goto **开具状态修改后显示
  613. :fapiaoyou
  614. echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
  615. echo ' 读取文件>>temp\yk.vbs
  616. echo set stream = fso.opentextfile("%mulu%\data\wjz\%wjznr%.txt",1)>>temp\yk.vbs
  617. echo content = stream.readall()>>temp\yk.vbs
  618. echo call stream.close()>>temp\yk.vbs
  619. echo ' 替换字符串>>temp\yk.vbs
  620. echo content = replace(content,"**开具=未开","**开具=已开")>>temp\yk.vbs
  621. echo ' 保存文件>>temp\yk.vbs
  622. echo set stream = fso.opentextfile("%mulu%\data\wjz\%wjznr%.txt",2)>>temp\yk.vbs
  623. echo call stream.write(content)>>temp\yk.vbs
  624. echo call stream.close()>>temp\yk.vbs
  625. call temp\yk.vbs
  626. del temp\yk.vbs>nul
  627. echo 开票日期=%开票日期%>>%mulu%\data\wjz\%wjznr%.txt
  628. echo **号码=%**号码%>>%mulu%\data\wjz\%wjznr%.txt
  629. ::yskpxx=原始开票信息
  630. ::thkpxx=替换开票信息
  631. ::sjkn=从数据库读取项目的年份
  632. ::sjky=从数据库读取项目的月份
  633. ::sjkr=从数据库读取项目的日期
  634. ::sjkdw=从数据库读取单位名称目录
  635. ::sjkmc=从数据库读取项目文件名称
  636. for /f %%a in ('findstr "%wjznr%" %mulu%\data\DB_list.txt') do (
  637. for /f "tokens=1-9 delims=*" %%b in ('echo %%a') do (
  638. set yskpxx=%%a
  639. set thkpxx=%%b*%%c*%%d*%%e*%%f*%%g*%%h*%%i*%%j*开票日期=%开票日期%***号码=%**号码%
  640. set sjkn=%%b
  641. set sjky=%%c
  642. set sjkr=%%d
  643. set sjkdw=%%e
  644. set sjkmc=%%f
  645. )
  646. )
  647. echo set fso = createobject("scripting.filesystemobject")>>yk.vbs
  648. echo ' 读取文件>>yk.vbs
  649. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",1)>>yk.vbs
  650. echo content = stream.readall()>>yk.vbs
  651. echo call stream.close()>>yk.vbs
  652. echo ' 替换字符串>>yk.vbs
  653. echo content = replace(content,"%yskpxx%","%thkpxx%")>>yk.vbs
  654. echo ' 保存文件>>yk.vbs
  655. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",2)>>yk.vbs
  656. echo call stream.write(content)>>yk.vbs
  657. echo call stream.close()>>yk.vbs
  658. call yk.vbs
  659. del yk.vbs>nul
  660. del %mulu%\data\work\%sjkn%\%sjky%\%sjkr%\%sjkdw%\%sjkmc% >nul
  661. copy %mulu%\data\wjz\%sjkmc% %mulu%\data\work\%sjkn%\%sjky%\%sjkr%\%sjkdw%\%sjkmc% >nul
  662. goto **开具状态修改后显示
  663. :过滤关键词
  664. echo 正在过滤关键词...
  665. set n=0
  666. if exist temp\wjz.tmp del temp\wjz.tmp>nul
  667. if exist temp\wjz.txt del temp\wjz.txt>nul
  668. cd %mulu%\data\wjz
  669. for /f "delims=" %%G in ('dir /b /on *.txt') do (
  670. findstr /m "%s%" %%G>>..\..\temp\wjz.tmp
  671. )
  672. cd..
  673. cd..
  674. for /f %%K in (temp\wjz.tmp) do (
  675. for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %mulu%\data\wjz\%%K') do (
  676. set /a n+=%%L
  677. )
  678. )
  679. set wjzje=%n%
  680. goto 过滤关键词成功
  681. :同步未结账记录
  682. echo 123>temp\wwc.zgl
  683. set wjznr=%wwcnr%
  684. :转为已结账
  685. for /f "tokens=2 delims==" %%a in ('findstr /b "**开具" %mulu%\data\wjz\%wjznr%.txt')do (
  686. set fapiaoshifoukaiju=%%a
  687. )
  688. if "%fapiaoshifoukaiju%"=="未开" goto **未开不能转为已结账
  689. :开始输入支票号码
  690. cls
  691. echo=
  692. echo=
  693. echo %biaoti% 查询未结账记录
  694. echo ==============================================================
  695. type %mulu%\data\wjz\%wjznr%.txt
  696. echo ==============================================================
  697. echo 1.支票结账
  698. echo 2.其他方式结账
  699. echo 0.返回
  700. set /p a=请选择:
  701. if "%a%"=="0" goto 查询未结账记录
  702. if "%a%"=="1" goto 支票结账
  703. if "%a%"=="2" goto 其他方式结账
  704. goto 开始输入支票号码
  705. :其他方式结账
  706. cls
  707. echo=
  708. echo=
  709. echo %biaoti% 查询未结账记录
  710. echo ==============================================================
  711. type %mulu%\data\wjz\%wjznr%.txt
  712. echo ==============================================================
  713. set /p b=请输入结账方式,例如:现金、微信转账等:
  714. echo 结账方式=%b%>>%mulu%\data\wjz\%wjznr%.txt
  715. echo 结账日期=%nian%%yue%%ri%>>%mulu%\data\wjz\%wjznr%.txt
  716. goto 选择完结账方式开始计算结账金额
  717. :支票结账
  718. set /p c=请输入支票号码,现金结账请直接输入现金,其他方式结账:
  719. echo %c%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是支票号码||goto 不是支票号码
  720. :不是支票号码
  721. echo=
  722. echo 您输入的 %c% 不是支票号码,请输入8位纯数字支票号码,按任意键重新输入
  723. pause>nul
  724. goto 开始输入支票号码
  725. :是支票号码
  726. echo 支票号码=%c%>>%mulu%\data\wjz\%wjznr%.txt
  727. echo 结账日期=%nian%%yue%%ri%>>%mulu%\data\wjz\%wjznr%.txt
  728. :选择完结账方式开始计算结账金额
  729. if not exist %mulu%\data\yjz md %mulu%\data\yjz
  730. for /f "tokens=2 delims==" %%C in ('findstr /b "金额合计=" %mulu%\data\wjz\%wjznr%.txt') do (
  731. set jehj=%%C
  732. )
  733. for /f %%D in (%mulu%\data\wjz\heji.jl) do (
  734. set heji=%%D
  735. )
  736. echo A=%heji%>>temp\js.vbs
  737. echo B=%jehj%>>temp\js.vbs
  738. echo jieguo=eval(0+A-B)>>temp\js.vbs
  739. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  740. call temp\js.vbs
  741. del temp\js.vbs
  742. del %mulu%\data\wjz\heji.jl >nul
  743. move temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  744. move %mulu%\data\wjz\%wjznr%.txt %mulu%\data\yjz>nul
  745. if exist %mulu%\data\yjz\heji.jl goto 计算已结账金额
  746. echo %jehj%>>%mulu%\data\yjz\heji.jl
  747. goto 已结账金额计算结束继续
  748. :计算已结账金额
  749. for /f %%E in (%mulu%\data\yjz\heji.jl) do (
  750. set heji=%%E
  751. )
  752. echo A= %heji% >>temp\js.vbs
  753. echo B= %jehj% >>temp\js.vbs
  754. echo jieguo =eval(0+ A + B)>>temp\js.vbs
  755. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  756. call temp\js.vbs
  757. del temp\js.vbs
  758. move temp\sz.txt %mulu%\data\yjz\heji.jl>nul
  759. if not exist temp\wwc.zgl goto 已结账金额计算结束继续
  760. del temp\wwc.zgl>nul
  761. echo 同步...ok
  762. pause
  763. goto 查询未完成项目记录
  764. :已结账金额计算结束继续
  765. echo 转为已结账...ok
  766. goto 查询未结账记录
  767. :**未开不能转为已结账
  768. echo=
  769. echo 该项目**还未开具,不能转为已记账记录,请先录入**数据...
  770. pause
  771. goto 查询未结账记录
  772. :查询项目记录
  773. del temp\*list.* >nul
  774. cls
  775. echo=
  776. echo=
  777. echo %biaoti% 查询已完成项目记录
  778. echo ==============================================================
  779. set /p v=请输入查询条件,0=返回:
  780. echo ==============================================================
  781. echo=
  782. if "%v%"=="0" goto start
  783. goto 查询项目记录开始
  784. :查询项目记录开始
  785. cls
  786. echo=
  787. echo=
  788. echo %biaoti% 正在按照 %v% 为条件检索
  789. echo ===================================================================
  790. echo 正在检索包含 %v% 的条目......
  791. for /f %%a in ('findstr "%v%" %mulu%\data\DB_list.txt') do (
  792. for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
  793. for /f "tokens=1 delims=." %%c in ('echo %%b') do (
  794. for /f "tokens=5 delims=\" %%d in ('echo %%c') do (
  795. echo %mulu%\data\work\%%b>>temp\4list.tttpath
  796. for /f "tokens=1 delims=." %%e in ('echo %%d') do (
  797. echo %%e>>temp\4list.tttname
  798. )
  799. )
  800. )
  801. )
  802. )
  803. findstr /n .* temp\4list.tttpath>>temp\4list.path
  804. for /f %%a in ('findstr /n .* temp\4list.tttname') do (
  805. echo %%a>>temp\4list.name
  806. echo=>>temp\4list.name
  807. )
  808. :按客户单位查询继续显示
  809. cls
  810. echo=
  811. echo=
  812. echo %biaoti% 正在按照 %v% 为条件检索
  813. echo ===================================================================
  814. type temp\4list.name
  815. echo ===================================================================
  816. echo=
  817. set /p v1=输入序号查看详情,0=返回:
  818. echo ----------------------------------------------------------------------------------------------------------
  819. if "%v1%"=="0" goto 查询项目记录
  820. for /f "tokens=2 delims=:" %%a in ('findstr /b "%v1%:" temp\4list.path') do (type %%a)
  821. echo=
  822. pause
  823. goto 按客户单位查询继续显示
  824. :统计数据
  825. set nian=%date:~0,4%
  826. set yue=%date:~5,2%
  827. set ri=%date:~8,2%
  828. cls
  829. echo=
  830. echo=
  831. echo %biaoti% 统计数据
  832. echo ==============================================================
  833. echo 1.统计总金额
  834. echo 2.统计未结账金额
  835. echo 3.统计已结账金额
  836. echo 4.核查金额记录数据
  837. echo 0.返回
  838. echo ==============================================================
  839. echo=
  840. set /p x=请选择:
  841. if "%x%"=="1" goto 统计总金额
  842. if "%x%"=="2" goto 统计未结账金额
  843. if "%x%"=="3" goto 统计已结账金额
  844. if "%x%"=="4" goto 核查金额记录数据
  845. if "%x%"=="0" goto start
  846. goto 统计数据
  847. :统计总金额
  848. cls
  849. echo=
  850. echo=
  851. echo %biaoti% 统计总金额
  852. echo ==============================================================
  853. echo=
  854. set /p nian=请输入统计年份,例如:%nian%,直接回车默认现在年份,0=返回:
  855. if "%nian%"=="0" goto 统计数据
  856. set /p yue=请输入统计月份,例如:%yue%,直接回车默认现在月份:
  857. if exist %mulu%\data\work\%nian%\%yue%\heji.jl goto 开始统计总金额
  858. cls
  859. echo=
  860. echo=
  861. echo %biaoti% 统计总金额
  862. echo ==============================================================
  863. echo 错误:%nian%年%yue%月份没有记录!
  864. pause
  865. goto 统计总金额
  866. :开始统计总金额
  867. for /f %%y in (%mulu%\data\work\%nian%\%yue%\heji.jl) do (set jine=%%y)
  868. cls
  869. echo=
  870. echo=
  871. echo %biaoti% 统计总金额
  872. echo ==============================================================
  873. echo %nian%年%yue%月份的总金额为:%jine% 元。
  874. pause
  875. goto 统计总金额
  876. :统计未结账金额
  877. if exist %mulu%\data\wjz\heji.jl goto 开始统计未结账金额
  878. cls
  879. echo=
  880. echo=
  881. echo %biaoti% 统计未结账金额
  882. echo ==============================================================
  883. echo 错误:没有未结账记录!
  884. pause
  885. goto 统计数据
  886. :开始统计未结账金额
  887. for /f %%z in (%mulu%\data\wjz\heji.jl) do (set jine=%%z)
  888. cls
  889. echo=
  890. echo=
  891. echo %biaoti% 统计未结账金额
  892. echo ==============================================================
  893. echo 未结账金额为 %jine% 元。
  894. pause
  895. goto 统计数据
  896. :统计已结账金额
  897. if exist %mulu%\data\yjz\heji.jl goto 开始统计已结账金额
  898. cls
  899. echo=
  900. echo=
  901. echo %biaoti% 统计已结账金额
  902. echo ==============================================================
  903. echo 错误:没有已结账记录!
  904. pause
  905. goto 统计数据
  906. :开始统计已结账金额
  907. for /f %%F in (%mulu%\data\yjz\heji.jl) do (set jine=%%F)
  908. cls
  909. echo=
  910. echo=
  911. echo %biaoti% 统计已结账金额
  912. echo ==============================================================
  913. echo 已结账金额为 %jine% 元。
  914. pause
  915. goto 统计数据
  916. :核查金额记录数据
  917. cls
  918. echo=
  919. echo=
  920. echo %biaoti% 核查金额记录数据
  921. echo ==============================================================
  922. :核查总金额
  923. set nian=%date:~0,4%
  924. set sz=0
  925. set /a n+=1
  926. if %n% gtr 12 goto 核查未结账金额
  927. if %n% geq 10 goto 月份大于等于十
  928. set yf=0%n%
  929. :查询月份是否存在
  930. if exist %mulu%\data\work\%nian%\%yf%\*.* goto 月份有
  931. goto 核查总金额
  932. :月份大于等于十
  933. set yf=%n%
  934. goto 查询月份是否存在
  935. :月份有
  936. for /f %%a in ('dir /s /b %mulu%\data\work\%nian%\%yf%\*.txt') do (
  937. for /f "tokens=2 delims==" %%b in ('findstr /b "金额合计" %%a') do (
  938. set /a sz+=%%b
  939. )
  940. )
  941. if exist %mulu%\data\work\%nian%\%yf%\heji.jl goto 开始核查
  942. set /p a=发现%nian%年%yf%月的合计数据不存在,是否重新创建?1=创建,其他键=返回
  943. if "%a%"=="1" goto 开始重新创建
  944. goto 统计数据
  945. :开始重新创建
  946. echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
  947. goto 核查金额记录数据
  948. :开始核查
  949. for /f %%a in (%mulu%\data\work\%nian%\%yf%\heji.jl) do (set laozje=%%a)
  950. if %sz% equ %laozje% goto 总金额一样
  951. if %sz% gtr %laozje% goto 总金额不一样
  952. if %sz% lss %laozje% goto 总金额不一样
  953. :总金额一样
  954. echo %nian%年%yf%月,总金额 %sz% 元。
  955. echo ==============================================================
  956. goto 核查总金额
  957. :总金额不一样
  958. echo %nian%年%yf%月,实际总金额 %sz% 元。
  959. echo ==============================================================
  960. echo 未结账实际金额:%sz%元。
  961. echo 金额记录数据为:%laozje%元。
  962. echo %nian%年%yf%月记录与总金额不符,开始修复...
  963. echo=
  964. del %mulu%\data\work\%nian%\%yf%\heji.jl>nul
  965. echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
  966. echo 修复完成,按任意键返回
  967. pause>nul
  968. goto 核查金额记录数据
  969. :核查未结账金额
  970. echo=
  971. set n=0
  972. for /f %%b in ('dir /b %mulu%\data\wjz\*.txt') do (
  973. for /f  "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%%b') do (
  974. set /a n+=%%c
  975. )
  976. )
  977. set xinwjz=%n%
  978. if exist %mulu%\data\wjz\heji.jl goto 开始核查未结账金额
  979. set /p a=发现未结账的合计数据不存在,是否重新创建?1=创建,0=返回
  980. if "%a%"=="1" goto 开始重新创建未结账
  981. if "%a%"=="0" goto 统计数据
  982. goto 核查未结账金额
  983. :开始重新创建未结账
  984. echo %xinwjz%>%mulu%\data\wjz\heji.jl
  985. goto 核查未结账金额
  986. :开始核查未结账金额
  987. for /f %%a in (%mulu%\data\wjz\heji.jl) do (
  988. set laowjz=%%a
  989. )
  990. if %xinwjz% equ %laowjz% goto 未结账金额一样
  991. if %xinwjz% gtr %laowjz% goto 未结账金额不一样
  992. if %xinwjz% lss %laowjz% goto 未结账金额不一样
  993. :未结账金额不一样
  994. echo 未结账实际金额:%xinwjz%元。
  995. echo 金额记录数据为:%laowjz%元。
  996. echo 未结账金额与记录不符,开始修复...
  997. echo=
  998. del %mulu%\data\wjz\heji.jl>nul
  999. echo %xinwjz%>%mulu%\data\wjz\heji.jl
  1000. echo 修复完成,按任意键返回
  1001. pause>nul
  1002. goto 核查金额记录数据
  1003. :未结账金额一样
  1004. echo 未结账金额一致,未结账金额 %laowjz% 元。
  1005. echo 所有核查结束,按任意键返回
  1006. pause>nul
  1007. goto 统计数据
  1008. :fm
  1009. cls
  1010. echo=
  1011. echo=
  1012. echo %biaoti%
  1013. echo ==============================================================
  1014. echo 1.工作项目记录
  1015. echo 2.查询未完成项目记录
  1016. echo 3.查询未结账记录
  1017. echo 4.查询已完成项目记录
  1018. echo 5.统计数据
  1019. echo 6.刷新数据库
  1020. echo 7.备份
  1021. echo 0.退出
  1022. echo ==============================================================
  1023. echo=
  1024. goto :eof
  1025. ::显示正在处理请求
  1026. :zzcl
  1027. echo 正在处理请求,请稍等...
  1028. goto :eof
  1029. :刷新数据库
  1030. if exist %mulu%\data\DB_list.txt del /q %mulu%\data\DB_list.txt
  1031. cls
  1032. echo=
  1033. echo=
  1034. echo %biaoti% 刷新数据库
  1035. echo ==============================================================
  1036. echo 正在刷新数据库,请稍等......
  1037. ::m=目录路径
  1038. ::a=读取WORK文件夹下年份目录列表,同时获取年份
  1039. ::b=读取年份文件夹下月份目录列表,同时获取月份
  1040. ::c=读取月份文件夹下日期目录列表,同时获取日期
  1041. ::d=读取日期文件夹下单位名称目录列表,同时获取单位
  1042. ::e=读取单位文件夹下TXT文件列表,同时获取文件名称
  1043. ::
  1044. ::
  1045. ::
  1046. @echo off
  1047. setlocal enabledelayedexpansion
  1048. set m=%mulu%\data\work
  1049. for /f %%a in ('dir /ad /b %m%') do (
  1050. for /f %%b in ('dir /ad /b %m%\%%a') do (
  1051. for /f %%c in ('dir /ad /b %m%\%%a\%%b') do (
  1052. for /f %%d in ('dir /ad /b %m%\%%a\%%b\%%c') do (
  1053. for /f %%e in ('dir /b %m%\%%a\%%b\%%c\%%d\*.txt') do (
  1054. (for %%f in ("%m%\%%a\%%b\%%c\%%d\%%e") do (
  1055. set str=
  1056. for /f "delims=" %%g in ('type %%f') do (
  1057. set str=!str!*%%g
  1058. )
  1059. echo,%%a\%%b\%%c\%%d\%%e!str!
  1060. ))>>"%mulu%\data\DB_list.txt"
  1061. )
  1062. )
  1063. )
  1064. )
  1065. )
  1066. cls
  1067. echo=
  1068. echo=
  1069. echo %biaoti% 刷新数据库
  1070. echo ==============================================================
  1071. echo 数据库刷新完成,按任意键继续......
  1072. pause>nul
  1073. goto start
  1074. :备份
  1075. if not exist %mulu%\backup md %mulu%\backup
  1076. cls
  1077. echo=
  1078. echo=
  1079. echo %biaoti% 备份数据
  1080. echo ==============================================================
  1081. echo 1=开始备份 2=管理备份 0=返回
  1082. set /p v=
  1083. if "%v%"=="0" goto start
  1084. if "%v%"=="1" goto 开始备份
  1085. if "%v%"=="2" goto 管理备份
  1086. goto 备份
  1087. :开始备份
  1088. if exist %mulu%\backup\%nian%%yue%%ri% goto 已备份
  1089. cls
  1090. echo=
  1091. echo=
  1092. echo %biaoti% 备份数据
  1093. echo ==============================================================
  1094. echo 正在将数据备份至backup下的%nian%%yue%%ri%文件夹内...
  1095. md %mulu%\backup\%nian%%yue%%ri%
  1096. xcopy /e %mulu%\data %mulu%\backup\%nian%%yue%%ri%
  1097. echo 备份完成,按任意键返回
  1098. pause>nul
  1099. goto start
  1100. :已备份
  1101. cls
  1102. echo=
  1103. echo=
  1104. echo %biaoti% 备份数据
  1105. echo ==============================================================
  1106. echo %nian%年%yue%月%ri%日已备份过数据,如继续将删除当前数据
  1107. set /p a=1=继续 0=返回
  1108. if "%a%"=="0" goto start
  1109. if "%a%"=="1" goto 准备开始备份
  1110. goto 已备份
  1111. :准备开始备份
  1112. echo 正在删除当前备份 %nian%%yue%%ri%
  1113. rmdir /s /q %mulu%\backup\%nian%%yue%%ri%
  1114. goto 备份
  1115. :管理备份
  1116. cls
  1117. echo=
  1118. echo=
  1119. echo %biaoti% 备份数据
  1120. echo ==============================================================
  1121. dir /ad /b %mulu%\backup
  1122. echo=
  1123. set /p b=输入需要删除的备份数据全名,0=返回
  1124. if "%b%"=="0" goto 备份
  1125. if not exist %mulu%\backup\%b% goto 备份不存在
  1126. echo 正在删除备份数据 %b%
  1127. rmdir /s /q %mulu%\backup\%b%
  1128. echo 删除完成,任意键返回
  1129. pause>nul
  1130. goto 管理备份
  1131. :备份不存在
  1132. echo 备份文件 %b% 不存在,任意键重新输入
  1133. pause>nul
  1134. goto 管理备份
  1135. :end
复制代码

很强,虽然不在有用的可能。

TOP

返回列表