[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 简单记录.bat

本帖最后由 binghejin 于 2020-11-17 16:00 编辑

因自己的工作室需要一套能简单记录项目及项目的完成、结账情况,找不到合适的,就自己编写了一套,经过一段时间的使用,感觉比较稳定了,现在放上来给有相同需求的同学使用,发现BUG请跟帖,万分感谢。
目前已经可以多机器联网使用了,当然您也可以单机使用,代码一开始的时候,需要您根据自身需求填写2处变量即可。
  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.20201117
  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. cls
  25. echo=
  26. echo 正在启动....................
  27. for /f %%C in (%mulu%\data\banben.txt) do (set wangluobanben=%%C)
  28. if %banben% lss %wangluobanben% goto 升级
  29. goto 111
  30. :升级
  31. md temp
  32. cls
  33. echo=
  34. echo 检测到有新版本 %wangluobanben%,正在升级......
  35. echo ==============================================================
  36. if exist temp\noredme del temp\noredme
  37. if not exist %mulu%\data\redme.txt goto 丢失说明文件开始升级
  38. findstr /n .* %mulu%\data\redme.txt>>temp\noredme
  39. for /f %%a in ('findstr "#" %mulu%\data\redme.txt') do (
  40. for /f "tokens=1 delims=#" %%b in ('echo %%a') do (
  41. for /f "tokens=1 delims=版" %%c in ('echo %%b') do (
  42. if %%c GTR %banben% set shengjibanben=%%c&&goto 升级显示说明版本号确定
  43. )))
  44. :升级显示说明版本号确定
  45. for /f "tokens=1 delims=:" %%a in ('findstr #%shengjibanben%版本 temp\noredme') do (set /a shengjixianshi=%%a-1)
  46. echo=
  47. echo 新版说明
  48. echo=
  49. for /f "skip=%shengjixianshi% delims=" %%i in (%mulu%\data\redme.txt) do (echo %%i)
  50. echo=
  51. :丢失说明文件开始升级
  52. echo 按任意键开始升级...
  53. pause>nul
  54. echo echo 正在升级... >>temp\sj.bat
  55. echo copy /y %mulu%\data\jl.bat^>nul >>temp\sj.bat
  56. echo echo 升级完成... >>temp\sj.bat
  57. echo pause>nul >>temp\sj.bat
  58. echo jl.bat >>temp\sj.bat
  59. temp\sj.bat
  60. :111
  61. cls
  62. echo=
  63. echo 正在启动........................................
  64. if exist %mulu%\data\kehu.ini goto next2
  65. ::没有kehu.ini文件,开始创建...
  66. cls
  67. set /p kehu=请输入常用客户详细名称:
  68. for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastlinekh=%%~a)
  69. set /a xuhao=%lastlinekh%+1
  70. echo %xuhao%=%kehu%>>%mulu%\data\kehu.ini
  71. :next2
  72. cls
  73. echo=
  74. echo 正在启动.....................................................................
  75. if exist %mulu%\data\xm.ini goto next3
  76. ::没有xm.ini文件,开始创建...
  77. cls
  78. set /p xiangmu=请输入常用项目详细名称:
  79. for /f "delims=" %%b in (%mulu%\data\xm.ini) do (set lastlinexm=%%~b)
  80. set /a xuhao=%lastlinexm%+1
  81. echo %xuhao%=%xiangmu%>>%mulu%\data\xm.ini
  82. :next3
  83. cls
  84. echo=
  85. echo 正在启动....................................................................................................
  86. if not exist temp md temp
  87. if not exist %mulu%\data md %mulu%\data
  88. del /q temp\*.* >nul
  89. :start
  90. cls
  91. call:fm
  92. set /p a=请选择:
  93. if "%a%"=="1" goto 工作记录
  94. if "%a%"=="2" goto 查询未完成项目记录
  95. if "%a%"=="3" goto 查询未结账记录
  96. if "%a%"=="4" goto 查询项目记录
  97. if "%a%"=="5" goto 数据统计
  98. if "%a%"=="6" goto 数据管理
  99. if "%a%"=="0" goto end
  100. goto start
  101. :工作记录
  102. cls
  103. echo=
  104. echo=
  105. echo %biaoti% 工作项目记录
  106. echo ==============================================================
  107. type %mulu%\data\kehu.ini
  108. echo ==============================================================
  109. set /p b=请输入客户单位快捷数字,0=返回:
  110. echo %b%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto dwyes||goto dwno
  111. :dwyes
  112. if "%b%"=="0" goto start
  113. echo %b%|findstr %b%= "%mulu%\data\kehu.ini" >nul&&goto dwyou||goto 工作记录
  114. :dwyou
  115. for /f "tokens=2 delims==" %%c in ('findstr /b "%b%=" %mulu%\data\kehu.ini') do (set khdw=%%c)
  116. :xm
  117. cls
  118. echo=
  119. echo=
  120. echo %biaoti% 工作项目记录
  121. echo ==============================================================
  122. type %mulu%\data\xm.ini
  123. echo ==============================================================
  124. echo 客户单位=%khdw%
  125. echo=
  126. set /p d=请输入项目快捷数字,0=返回:
  127. echo %d%|findstr "0 1 2 3 4 5 6 7 8 9" >nul&&goto xmyes||goto xmno
  128. :xmyes
  129. if "%d%"=="0" goto start
  130. echo %d%|findstr %d%= "%mulu%\data\xm.ini" >nul&&goto xmyou||goto xm
  131. :xmyou
  132. for /f "tokens=2 delims==" %%e in ('findstr /b "%d%=" %mulu%\data\xm.ini') do (set xm=%%e)
  133. cls
  134. echo=
  135. echo=
  136. echo %biaoti% 工作项目记录
  137. echo ==============================================================
  138. echo 客户单位=%khdw%
  139. echo 客户项目=%xm%
  140. echo ==============================================================
  141. set /p dj=请输入单价 0=返回:
  142. if "%dj%"=="0" goto start
  143. cls
  144. echo=
  145. echo=
  146. echo %biaoti% 工作项目记录
  147. echo ==============================================================
  148. echo 客户单位=%khdw%
  149. echo 客户项目=%xm%
  150. echo 项目单价=%dj%
  151. echo ==============================================================
  152. set /p sl=请输入数量 0=返回:
  153. if "%sl%"=="0" goto start
  154. if "%sl%"=="" set sl=1
  155. cls
  156. echo=
  157. echo=
  158. echo %biaoti% 工作项目记录
  159. echo ==============================================================
  160. echo 客户单位=%khdw%
  161. echo 客户项目=%xm%
  162. echo 项目单价=%dj%
  163. echo 项目数量=%sl%
  164. echo ==============================================================
  165. set /p bz=请输入备注 0=返回:
  166. if "%bz%"=="0" goto start
  167. echo A= %dj% >>temp\js.vbs
  168. echo B= %sl% >>temp\js.vbs
  169. echo jieguo =eval(0+ A * B)>>temp\js.vbs
  170. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  171. call temp\js.vbs
  172. del temp\js.vbs
  173. for /f %%i in (temp\sz.txt) do (set heji=%%i)
  174. del temp\sz.txt
  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 ==============================================================
  187. set /p h=请输入甲方项目联系人姓名 0=返回:
  188. if "%h%"=="0" goto start
  189. cls
  190. echo=
  191. echo=
  192. echo %biaoti% 工作项目记录
  193. echo ==============================================================
  194. echo 客户单位=%khdw%
  195. echo 客户项目=%xm%
  196. echo 具体项目=%bz%
  197. echo 项目单价=%dj%
  198. echo 项目数量=%sl%
  199. echo 金额合计=%heji%
  200. echo 项目联系人=%h%
  201. echo ==============================================================
  202. set /p i=请输入甲方项目联系人%h%的电话 0=返回:
  203. if "%i%"=="0" goto start
  204. cls
  205. echo=
  206. echo=
  207. echo %biaoti% 工作项目记录
  208. echo ==============================================================
  209. echo 客户单位=%khdw%
  210. echo 客户项目=%xm%
  211. echo 具体项目=%bz%
  212. echo 项目单价=%dj%
  213. echo 项目数量=%sl%
  214. echo 金额合计=%heji%
  215. echo 项目联系人=%h%
  216. echo 联系电话=%i%
  217. echo **开具=未开
  218. echo 开票日期=未知
  219. echo **号码=未知
  220. echo 结账方式=未知
  221. echo 银行流水=未知
  222. echo 创建日期=%nian%%yue%%ri%
  223. echo 结账日期=未知
  224. echo ==============================================================
  225. echo 正在写入...
  226. if not exist %mulu%\data\work md %mulu%\data\work
  227. if not exist %mulu%\data\work\%nian% md %mulu%\data\work\%nian%
  228. if not exist %mulu%\data\work\%nian%\%yue% md %mulu%\data\work\%nian%\%yue%
  229. if not exist %mulu%\data\work\%nian%\%yue%\%ri% md %mulu%\data\work\%nian%\%yue%\%ri%
  230. if not exist %mulu%\data\work\%nian%\%yue%\%ri%\%khdw% md %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%
  231. echo 客户单位=%khdw%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  232. echo 客户项目=%xm%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  233. echo 具体项目=%bz%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  234. echo 项目单价=%dj%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  235. echo 项目数量=%sl%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  236. echo 金额合计=%heji%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  237. echo 项目联系人=%h%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  238. echo 联系电话=%i%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  239. echo **开具=未开>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  240. echo 开票日期=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  241. echo **号码=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  242. echo 结账方式=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  243. echo 支票号码=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  244. echo 银行流水=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  245. echo 创建日期=%nian%%yue%%ri%>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  246. echo 结账日期=未知>>%mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt
  247. echo %nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt*客户单位=%khdw%*客户项目=%xm%*具体项目=%bz%*项目单价=%dj%*项目数量=%sl%*金额合计=%heji%*项目联系人=%h%*联系电话=%i%***开具=未开*开票日期=未知***号码=未知*结账方式=未知*支票号码=未知*银行流水=未知*创建日期=%nian%%yue%%ri%*结账日期=未知>>%mulu%\data\DB_list.txt
  248. if exist %mulu%\data\work\%nian%\%yue%\heji.jl goto 计算合计金额
  249. echo %heji%>>%mulu%\data\work\%nian%\%yue%\heji.jl
  250. goto 合计金额创建成功继续
  251. :计算合计金额
  252. for /f %%v in (%mulu%\data\work\%nian%\%yue%\heji.jl) do (set jisuana=%%v)
  253. set jisuanb=%heji%
  254. call:vbs计算加法
  255. move /y temp\sz.txt %mulu%\data\work\%nian%\%yue%\heji.jl >nul
  256. :合计金额创建成功继续
  257. if not exist %mulu%\data\wjz md %mulu%\data\wjz
  258. copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wjz >nul
  259. if exist %mulu%\data\wjz\heji.jl goto 计算未结账合计金额
  260. echo %heji%>>%mulu%\data\wjz\heji.jl
  261. goto 未结账合计金额创建成功继续
  262. :计算未结账合计金额
  263. for /f %%w in (%mulu%\data\wjz\heji.jl) do (
  264. set jisuana=%%w
  265. )
  266. set jisuanb=%heji%
  267. call:vbs计算加法
  268. move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  269. :未结账合计金额创建成功继续
  270. if not exist %mulu%\data\wwc md %mulu%\data\wwc
  271. copy %mulu%\data\work\%nian%\%yue%\%ri%\%khdw%\%bz%%xm%.txt %mulu%\data\wwc >nul
  272. cls
  273. echo=
  274. echo=
  275. echo %biaoti% 工作项目记录
  276. echo ==============================================================
  277. echo 客户单位=%khdw%
  278. echo 客户项目=%xm%
  279. echo 具体项目=%bz%
  280. echo 项目单价=%dj%
  281. echo 项目数量=%sl%
  282. echo 金额合计=%heji%
  283. echo 项目联系人=%h%
  284. echo 联系电话=%i%
  285. echo **开具=未开
  286. echo 开票日期=未知
  287. echo **号码=未知
  288. echo 结账方式=未知
  289. echo 银行流水=未知
  290. echo 创建日期=%nian%%yue%%ri%
  291. echo 结账日期=未知
  292. echo ==============================================================
  293. echo 写入完成,任意键返回
  294. pause>nul
  295. goto start
  296. :dwno
  297. set j=0
  298. cls
  299. echo=
  300. echo=
  301. echo %biaoti% 工作项目记录
  302. echo ==============================================================
  303. type %mulu%\data\kehu.ini
  304. echo ==============================================================
  305. echo 您输入的单位名称 %b%,没有记录,是否记录?
  306. echo=
  307. echo 1=记录 其他=返回
  308. set /p j=
  309. if "%j%"=="" goto dwmeiyou
  310. if "%j%"=="1" goto dwchuangjian
  311. goto start
  312. :dwchuangjian
  313. for /f "delims=" %%a in (%mulu%\data\kehu.ini) do (set lastline=%%~a)
  314. echo %lastline%>temp\dwmc.tmp
  315. for /f "tokens=1 delims==" %%i in (temp\dwmc.tmp) do (set shuzi=%%i)
  316. set/a xuhao=%shuzi%+1
  317. echo %xuhao%=%b%>>%mulu%\data\kehu.ini
  318. set b=%xuhao%
  319. goto dwyou
  320. :xmno
  321. set m=0
  322. cls
  323. echo=
  324. echo=
  325. echo %biaoti% 工作项目记录
  326. echo ==============================================================
  327. type %mulu%\data\xm.ini
  328. echo ==============================================================
  329. echo 您输入的项目名称 %d%,没有记录,是否记录?
  330. echo=
  331. echo 1=记录 其他=返回
  332. set /p m=
  333. if "%m%"=="" goto xmmeiyou
  334. if "%m%"=="1" goto xmchuangjian
  335. goto start
  336. :xmchuangjian
  337. for /f "delims=" %%a in (%mulu%\data\xm.ini) do (set lastline=%%~a)
  338. echo %lastline%>temp\xmmc.tmp
  339. for /f "tokens=1 delims==" %%i in (temp\xmmc.tmp) do (set shuzi=%%i)
  340. set/a xuhao=%shuzi%+1
  341. echo %xuhao%=%d%>>%mulu%\data\xm.ini
  342. set d=%xuhao%
  343. goto xmyes
  344. :没有未完成项目记录
  345. cls
  346. echo=
  347. echo=
  348. echo %biaoti% 查询未完成项目记录
  349. echo ==============================================================
  350. echo 没有未完成的工作项目记录!
  351. echo ==============================================================
  352. pause
  353. goto start
  354. :查询未完成项目记录
  355. if not exist %mulu%\data\wwc\*.txt goto 没有未完成项目记录
  356. if exist temp\wwc*.* del /q temp\wwc*.* >nul
  357. dir /b /on %mulu%\data\wwc\*.txt>temp\wwc.tmp
  358. rem echo %mulu%\data\wwc\*.txt
  359. for /f "tokens=1 delims=." %%H in (temp\wwc.tmp) do (
  360. echo %%H>>temp\wwc.ttt
  361. )
  362. findstr /n .* temp\wwc.ttt>>temp\wwc.txt
  363. del temp\wwc.ttt>nul
  364. del temp\wwc.tmp>nul
  365. cls
  366. echo=
  367. echo=
  368. echo %biaoti% 查询未完成项目记录
  369. echo ==============================================================
  370. type temp\wwc.txt
  371. echo ==============================================================
  372. set /p p=输入序号以查看详情,0=返回:
  373. if "%p%"=="0" goto start
  374. for /f "tokens=2 delims=:" %%q in ('findstr /b "%p%:" temp\wwc.txt') do (set wwcnr=%%q)
  375. cls
  376. echo=
  377. echo=
  378. echo %biaoti% 查询未完成项目记录
  379. echo ==============================================================
  380. type %mulu%\data\wwc\%wwcnr%.txt
  381. echo ==============================================================
  382. set /p r=X=完成该项目,D=删除该项目,其他键返回:
  383. if "%r%"=="x" goto 完成该项目
  384. if "%r%"=="d" goto 删除该项目
  385. goto 查询未完成项目记录
  386. :删除该项目
  387. cls
  388. echo=
  389. echo=
  390. echo %biaoti% 查询未完成项目记录
  391. echo ==============================================================
  392. type %mulu%\data\wwc\%wwcnr%.txt
  393. echo ==============================================================
  394. set /p aa=删除该项目后,会同步删除该项目所有对应数据,1=确定,其他键返回:
  395. if "%aa%"=="1" goto 确定删除该项目
  396. goto 查询未完成项目记录
  397. :确定删除该项目
  398. copy %mulu%\data\wwc\%wwcnr%.txt temp\%wwcnr%.txt>nul
  399. cls
  400. echo=
  401. echo=
  402. echo %biaoti% 查询未完成项目记录
  403. echo ==============================================================
  404. type %mulu%\data\wwc\%wwcnr%.txt
  405. echo ==============================================================
  406. echo 正在删除中...
  407. ::从数据库中读取要删除文件地址、客户单位、项目金额合计
  408. for /f %%a in ('findstr "%wwcnr%.txt" %mulu%\data\DB_list.txt') do (
  409. for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
  410. set wenjiandizhi=%%b
  411. for /f "tokens=2 delims=*" %%c in ('echo %%a') do (
  412. for /f "tokens=2 delims==" %%d in ('echo %%c') do (
  413. set kehudanwei=%%d
  414. for /f "tokens=7 delims=*" %%e in ('echo %%a') do (
  415. for /f "tokens=2 delims==" %%f in ('echo %%e') do (
  416. set xmjineheji=%%f
  417. ))))))
  418. ::从文件地址读取文件所在的年目录与月目录
  419. for /f "tokens=1-3 delims=\" %%a in ('echo %wenjiandizhi%') do (
  420. set xmnian=%%a
  421. set xmyue=%%b
  422. set xmri=%%c
  423. )
  424. ::读取work下相关月份下的金额合计数值
  425. for /f %%a in (%mulu%\data\work\%xmnian%\%xmyue%\heji.jl) do (set workheji=%%a)
  426. ::读取wjz目录下的金额合计数值
  427. for /f %%a in (%mulu%\data\wjz\heji.jl) do (set wjzheji=%%a)
  428. ::计算work目录内相关月份合计金额
  429. if exist %mulu%\data\work\%xmnian%\%xmyue%\heji.jl del %mulu%\data\work\%xmnian%\%xmyue%\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. set jisuana=%workheji%
  433. set jisuanb=%xmjineheji%
  434. call:vbs计算减法
  435. move temp\sz.txt %mulu%\data\work\%xmnian%\%xmyue%\heji.jl>nul
  436. ::计算未结账合计金额
  437. if exist %mulu%\data\wjz\heji.jl del %mulu%\data\wjz\heji.jl>nul
  438. if exist temp\js.vbs del temp\js.vbs>nul
  439. if exist temp\sz.txt del temp\sz.txt>nul
  440. set jisuana=%wjzheji%
  441. set jisuanb=%xmjineheji%
  442. call:vbs计算减法
  443. move temp\sz.txt %mulu%\data\wjz\heji.jl>nul
  444. ::删除work目录下对应文件,判断该目录下是否还有其他文件,如没有,则删除目录。
  445. del %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%\%wwcnr%.txt>nul
  446. rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%\%kehudanwei%>nul
  447. rd %mulu%\data\work\%xmnian%\%xmyue%\%xmri%>nul
  448. ::删除wwc目录下文件
  449. if exist %mulu%\data\wwc\%wwcnr%.txt del %mulu%\data\wwc\%wwcnr%.txt>nul
  450. ::删除wjz目录下文件
  451. if exist %mulu%\data\wjz\%wwcnr%.txt del %mulu%\data\wjz\%wwcnr%.txt>nul
  452. ::从数据库中删除相关行
  453. find/v "%wenjiandizhi%" %mulu%\data\DB_list.txt>>temp\ls.jl
  454. pause
  455. move /y temp\ls.jl %mulu%\data\DB_list.txt >nul
  456. ::删除完成后显示
  457. cls
  458. echo=
  459. echo=
  460. echo %biaoti% 查询未完成项目记录
  461. echo ==============================================================
  462. type temp\%wwcnr%.txt
  463. echo ==============================================================
  464. del temp\%wwcnr%.txt>nul
  465. echo 项目删除完成,任意键返回
  466. pause>nul
  467. goto 查询未完成项目记录
  468. :完成该项目
  469. cls
  470. echo=
  471. echo=
  472. echo %biaoti% 查询未完成项目记录
  473. echo ==============================================================
  474. type %mulu%\data\wwc\%wwcnr%.txt
  475. echo ==============================================================
  476. del %mulu%\data\wwc\%wwcnr%.txt>nul
  477. echo 项目完成,任意键返回
  478. pause>nul
  479. goto 查询未完成项目记录
  480. :查询未结账记录
  481. if not exist %mulu%\data\wjz\*.txt goto 没有未结账记录
  482. set n=0
  483. if exist temp\wjz*.* del /q temp\wjz*.* >nul
  484. dir /b /on %mulu%\data\wjz\*.txt>temp\wjz.tmp
  485. for /f %%J in (%mulu%\data\wjz\heji.jl) do (set wjzje=%%J)
  486. :过滤关键词成功
  487. for /f "tokens=1 delims=." %%a in (temp\wjz.tmp) do (echo %%a>>temp\wjz.ttt)
  488. del temp\wjz.tmp>nul
  489. for /f %%b in (temp\wjz.ttt) do (
  490. for /f "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%%b.txt') do (
  491. for /f "tokens=2 delims==" %%d in ('findstr /b "**开具" %mulu%\data\wjz\%%b.txt') do (
  492. if "%%d"=="已开" (echo %%b.%%c.%%d>>temp\wjz.yikai
  493. ) else (echo %%b.%%c.%%d>>temp\wjz.weikai)
  494. )
  495. )
  496. )
  497. for /f %%a in (temp\wjz.weikai) do (echo %%a>>temp\wjz.je)
  498. for /f %%a in (temp\wjz.yikai) do (echo %%a>>temp\wjz.je)
  499. for /f %%p in ('findstr /n .* temp\wjz.je') do (
  500. echo %%p>>temp\wjz.txt
  501. echo=>>temp\wjz.txt
  502. )
  503. del temp\wjz.je>nul
  504. :继续查询
  505. cls
  506. echo=
  507. echo=
  508. echo %biaoti% 查询未结账记录
  509. echo ==============================================================
  510. type temp\wjz.txt
  511. echo=
  512. echo 合计:%wjzje% 元。
  513. echo ==============================================================
  514. set /p s=输入序号或关键词,0=返回:
  515. if "%s%"=="0" goto start
  516. echo %s%|findstr "1 2 3 4 5 6 7 8 9" >nul&&goto 序号查看详情||goto 过滤关键词
  517. :序号查看详情
  518. for /f "tokens=2 delims=:" %%t in ('findstr /b "%s%:" temp\wjz.txt') do (
  519. for /f "tokens=1 delims=." %%u in ('echo %%t') do (
  520. set wjznr=%%u
  521. )
  522. )
  523. :**开具状态修改后显示
  524. cls
  525. echo=
  526. echo=
  527. echo %biaoti% 查询未结账记录
  528. echo ==============================================================
  529. type %mulu%\data\wjz\%wjznr%.txt
  530. echo ==============================================================
  531. echo B=备注 E=编辑 X=转为已结账 Z=**转为已开 其他键=返回
  532. set /p u=请选择:
  533. if "%u%"=="b" goto 备注项目检查
  534. if "%u%"=="e" goto 编辑该项
  535. if "%u%"=="x" goto 转为已结账
  536. if "%u%"=="z" goto 转为已开
  537. goto 查询未结账记录
  538. :备注项目检查
  539. set xiangmujiancha=
  540. for /f %%a in ('findstr "备注内容=" %mulu%\data\wjz\%wjznr%.txt') do set xiangmujiancha=%%a
  541. if "%xiangmujiancha%"=="" goto 开始备注
  542. for /f %%a in ('findstr "备注内容=" %mulu%\data\wjz\%wjznr%.txt') do (
  543. for /f "tokens=2 delims==" %%b in ('echo %%a') do (
  544. set beizhuneirong=%%b
  545. ))
  546. :开始备注
  547. cls
  548. echo=
  549. echo=
  550. echo %biaoti% 备注
  551. echo ==============================================================
  552. type %mulu%\data\wjz\%wjznr%.txt
  553. echo ==============================================================
  554. if not "%xiangmujiancha%"=="" goto 追加备注内容
  555. set /p beizhu=请输入备注内容,0=返回:
  556. if "%beizhu%"=="0" goto 查询未结账记录
  557. echo 备注内容=%beizhu% >>%mulu%\data\wjz\%wjznr%.txt
  558. set xinjilu=备注内容=%beizhu%
  559. :追加备注后同步文件
  560. if exist %mulu%\data\wwc\%wjznr%.txt copy %mulu%\data\wjz\%wjznr%.txt %mulu%\data\wwc >nul
  561. for /f %%a in ('findstr "%wjznr%.txt" %mulu%\data\DB_list.txt') do (
  562. for /f "tokens=1-4 delims=\" %%b in ('echo %%a') do (
  563. set beizhuwenjianpath=%%b\%%c\%%d\%%e))
  564. if exist %mulu%\data\work\%beizhuwenjianpath%\%wjznr%.txt copy %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%beizhuwenjianpath% >nul
  565. set xbznr=%xinjilu%
  566. call:替换数据库内容
  567. goto **开具状态修改后显示
  568. :追加备注内容
  569. set /p beizhu=请输入追加的备注内容,0=返回:
  570. if "%beizhu%"=="0" goto 查询未结账记录
  571. set name=%mulu%\data\wjz\%wjznr%.txt
  572. set chaxun=备注内容=%beizhuneirong%
  573. set yuanjilu=备注内容=%beizhuneirong%
  574. set xinjilu=备注内容=%beizhuneirong%%beizhu%
  575. call:替换记录文件内容
  576. goto 追加备注后同步文件
  577. :编辑该项
  578. set 编辑文件路径含后缀名=%mulu%\data\wjz\%wjznr%.txt
  579. set 编辑文件全名=%wjznr%.txt
  580. call:编辑文件开始
  581. goto 序号查看详情
  582. :转为已开
  583. for /f %%a in ('findstr "**号码" %mulu%\data\wjz\%wjznr%.txt') do (
  584. for /f "tokens=2 delims==" %%b in ('echo %%a') do (set cxwjzfapiaohaoma=%%b))
  585. if "%cxwjzfapiaohaoma%"=="未知" goto 开始转为已开
  586. echo 该项目**已开
  587. pause
  588. goto 查询未结账记录
  589. :开始转为已开
  590. cls
  591. echo=
  592. echo=
  593. echo %biaoti% 查询未结账记录
  594. echo ==============================================================
  595. type %mulu%\data\wjz\%wjznr%.txt
  596. echo ==============================================================
  597. set 开票日期=
  598. set /p 开票日期=请输入**的开具日期(不开**请输入bk,直接回车日期为%nian%%yue%%ri%,0=返回):
  599. if "%开票日期%"=="0" goto 查询未结账记录
  600. if "%**号码%"=="bk" goto 不开**
  601. if "%开票日期%"=="" set 开票日期=%nian%%yue%%ri%
  602. echo %开票日期%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是日期||goto 不是日期
  603. :不是日期
  604. echo 日期格式输入错误,请重新输入,例如:%nian%%yue%%ri%
  605. pause
  606. goto 转为已开
  607. :是日期
  608. set /p **号码=请输入开具的**号码(不开**请输入bk):
  609. if "%**号码%"=="bk" goto 不开**
  610. echo %**号码%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是**号码||goto 不是**号码
  611. :不是**号码
  612. echo 号码格式输入错误,请重新输入,例如:05476533
  613. pause
  614. goto 转为已开
  615. :不开**
  616. set xfpkj=**开具=不开
  617. set xinjilu=**开具=不开
  618. goto **开具确定后
  619. :是**号码
  620. set xfpkj=**开具=已开
  621. set xinjilu=**开具=已开
  622. :**开具确定后
  623. set xkprq=开票日期=%开票日期%
  624. set xfphm=**号码=%**号码%
  625. rem 处理数据库
  626. set name=%wjznr%.txt
  627. call:替换数据库内容
  628. rem 处理wjz目录下记录文件
  629. set name=%mulu%\data\wjz\%wjznr%.txt
  630. rem 处理**开具项
  631. set chaxun=**开具
  632. call:替换记录文件内容
  633. rem 处理开票日期项
  634. set chaxun=开票日期
  635. set xinjilu=%xkprq%
  636. call:替换记录文件内容
  637. rem 处理**号码项
  638. set chaxun=**号码
  639. set xinjilu=%xfphm%
  640. call:替换记录文件内容
  641. for /f "tokens=1-4 delims=\" %%a in ('findstr "%wjznr%" %mulu%\data\DB_list.txt') do (
  642. set wenjianlujing=%%a\%%b\%%c\%%d)
  643. copy /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%wenjianlujing% >nul
  644. goto **开具状态修改后显示
  645. :过滤关键词
  646. echo 正在过滤关键词...
  647. set n=0
  648. if exist temp\wjz.tmp del temp\wjz.tmp>nul
  649. if exist temp\wjz.txt del temp\wjz.txt>nul
  650. cd %mulu%\data\wjz
  651. for /f "delims=" %%G in ('dir /b /on *.txt') do (
  652. findstr /m "%s%" %%G>>..\..\temp\wjz.tmp
  653. )
  654. cd..
  655. cd..
  656. for /f %%K in (temp\wjz.tmp) do (
  657. for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %mulu%\data\wjz\%%K') do (
  658. set /a n+=%%L
  659. )
  660. )
  661. set wjzje=%n%
  662. goto 过滤关键词成功
  663. :转为已结账
  664. for /f "tokens=2 delims==" %%a in ('findstr /b "**开具" %mulu%\data\wjz\%wjznr%.txt')do (set fapiaoshifoukaiju=%%a)
  665. if "%fapiaoshifoukaiju%"=="未开" goto **未开不能转为已结账
  666. goto 开始输入支票号码
  667. :**未开不能转为已结账
  668. echo=
  669. echo 该项目**还未开具,不能转为已记账记录,请先录入**数据...
  670. pause
  671. goto 查询未结账记录
  672. :开始输入支票号码
  673. cls
  674. echo=
  675. echo=
  676. echo %biaoti% 查询未结账记录
  677. echo ==============================================================
  678. type %mulu%\data\wjz\%wjznr%.txt
  679. echo ==============================================================
  680. echo 1.支票结账 2.其他方式结账 0.返回
  681. set /p a=请选择:
  682. if "%a%"=="0" goto 查询未结账记录
  683. if "%a%"=="1" goto 支票结账
  684. if "%a%"=="2" goto 其他方式结账
  685. goto 开始输入支票号码
  686. :其他方式结账
  687. cls
  688. echo=
  689. echo=
  690. echo %biaoti% 查询未结账记录
  691. echo ==============================================================
  692. type %mulu%\data\wjz\%wjznr%.txt
  693. echo ==============================================================
  694. set /p b=请选择结账方式,1=同城转账 2=其他方式结账,例如:现金、微信等 0=返回:
  695. if "%b%"=="1" goto 同城转账
  696. if "%b%"=="2" goto 其他方式结账
  697. if "%b%"=="0" goto 查询未结账记录
  698. goto 其他方式结账
  699. :同城转账
  700. set jiezhangfangshi=同城转账
  701. cls
  702. echo=
  703. echo=
  704. echo %biaoti% 查询未结账记录
  705. echo ==============================================================
  706. type %mulu%\data\wjz\%wjznr%.txt
  707. echo ==============================================================
  708. set /p yinhangliushui=请输入银行流水号:
  709. echo %yinhangliushui%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是同城转账的银行流水||goto 不是同城转账的银行流水
  710. :不是同城转账的银行流水
  711. echo 您输入的 %yinhangliushui% 格式不正确,银行流水号是8位纯数字,请正确输入。
  712. pause
  713. goto 同城转账
  714. :是同城转账的银行流水
  715. set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
  716. if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
  717. echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是同城转账的结账日期||goto 不是同城转账的结账日期
  718. :不是同城转账的结账日期
  719. echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
  720. pause
  721. goto 同城转账
  722. :是同城转账的结账日期
  723. set xjzfs=结账方式=%jiezhangfangshi%
  724. set xyhls=银行流水=%yinhangliushui%
  725. set xjzrq=结账日期=%jiezhangriqi%
  726. call:替换数据库内容
  727. rem 同城转账确定后处理wjz目录下记录文件
  728. set name=%mulu%\data\wjz\%wjznr%.txt
  729. rem 处理结账方式项
  730. set chaxun=结账方式
  731. set xinjilu=%xjzfs%
  732. call:替换记录文件内容
  733. rem 处理银行流水项
  734. set chaxun=银行流水
  735. set xinjilu=%xyhls%
  736. call:替换记录文件内容
  737. rem 处理结账日期项
  738. set chaxun=结账日期
  739. set xinjilu=%xjzrq%
  740. call:替换记录文件内容
  741. call:未结账转结账后处理文件
  742. goto 查询未结账记录
  743. :其他方式结账
  744. set jiezhangfangshi=
  745. set jiezhangriqi=
  746. cls
  747. echo=
  748. echo=
  749. echo %biaoti% 查询未结账记录
  750. echo ==============================================================
  751. type %mulu%\data\wjz\%wjznr%.txt
  752. echo ==============================================================
  753. set /p jiezhangfangshi=请直接输入结账方式,例如:现金、微信等:
  754. set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
  755. if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
  756. echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是其他方式的结账日期||goto 不是其他方式的结账日期
  757. :不是其他方式的结账日期
  758. echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
  759. pause
  760. goto 其他方式结账
  761. :是其他方式的结账日期
  762. set xjzfs=结账方式=%jiezhangfangshi%
  763. set xjzrq=结账日期=%jiezhangriqi%
  764. call:替换数据库内容
  765. rem 其他方式结账确定后处理wjz目录下记录文件
  766. set name=%mulu%\data\wjz\%wjznr%.txt
  767. rem 处理结账方式项
  768. set chaxun=结账方式
  769. set xinjilu=%xjzfs%
  770. call:替换记录文件内容
  771. rem 处理结账日期项
  772. set chaxun=结账日期
  773. set xinjilu=%xjzrq%
  774. call:替换记录文件内容
  775. call:未结账转结账后处理文件
  776. goto 查询未结账记录
  777. :支票结账
  778. set xjzfs=结账方式=支票
  779. cls
  780. echo=
  781. echo=
  782. echo %biaoti% 查询未结账记录
  783. echo ==============================================================
  784. type %mulu%\data\wjz\%wjznr%.txt
  785. echo ==============================================================
  786. set /p zhipiaohaoma=请输入支票号码,现金结账请直接输入现金,其他方式结账:
  787. echo %zhipiaohaoma%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是支票号码||goto 不是支票号码
  788. :不是支票号码
  789. echo=
  790. echo 您输入的 %zhipiaohaoma% 不是支票号码,请输入8位纯数字支票号码,按任意键重新输入
  791. pause>nul
  792. goto 支票结账
  793. :是支票号码
  794. set /p jiezhangriqi=请输入结账日期,格式为8位数日期,例如%nian%%yue%%ri%,如日期为今日,则直接回车确定
  795. if "%jiezhangriqi%"=="" set jiezhangriqi=%nian%%yue%%ri%
  796. echo %jiezhangriqi%|findstr /x "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" >nul&&goto 是支票的结账日期||goto 不是支票的结账日期
  797. :不是支票的结账日期
  798. echo 您输入的 %jiezhangriqi% 格式不正确,请正确输入,例如:%nian%%yue%%ri%
  799. goto 支票结账
  800. :是支票的结账日期
  801. set xzphm=支票号码=%zhipiaohaoma%
  802. set xjzrq=结账日期=%jiezhangriqi%
  803. set name=%wjznr%.txt
  804. call:替换数据库内容
  805. rem 支票结账确定后处理wjz目录下记录文件
  806. set name=%mulu%\data\wjz\%wjznr%.txt
  807. rem 处理结账方式项
  808. set chaxun=结账方式
  809. set xinjilu=%xjzfs%
  810. call:替换记录文件内容
  811. rem 处理支票号码项
  812. set chaxun=支票号码
  813. set xinjilu=%xzphm%
  814. call:替换记录文件内容
  815. rem 处理结账日期项
  816. set chaxun=结账日期
  817. set xinjilu=%xjzrq%
  818. call:替换记录文件内容
  819. call:未结账转结账后处理文件
  820. goto 查询未结账记录
  821. :查询项目记录
  822. set v=
  823. del /q temp\*list.* >nul
  824. cls
  825. echo=
  826. echo=
  827. echo %biaoti% 查询已完成项目记录
  828. echo ==============================================================
  829. set /p v=请输入查询条件,0=返回:
  830. echo ==============================================================
  831. if "%v%"=="0" goto start
  832. goto 查询项目记录开始
  833. :查询项目记录开始
  834. if exist temp\cx*.* del /q temp\*.* >nul
  835. cls
  836. echo=
  837. echo=
  838. echo %biaoti% 正在按照 %v% 为条件检索
  839. echo ===================================================================
  840. echo 正在检索包含 %v% 的条目......
  841. ::a=数据库中包含查找条件的行
  842. ::b=按查找条件找到的文件路径,包含后缀名
  843. ::c=按查找条件找到的文件路径,不含后缀名
  844. ::d=以斜杠划分,保留第5项,也就是名称,用来展示
  845. ::4list.tttpath是包含后缀名的文件完整路径
  846. ::e=
  847. for /f %%a in ('findstr "%v%" %mulu%\data\DB_list.txt') do (
  848. for /f "tokens=1 delims=*" %%b in ('echo %%a') do (
  849. for /f "tokens=1 delims=." %%c in ('echo %%b') do (
  850. for /f "tokens=5 delims=\" %%d in ('echo %%c') do (
  851. echo %mulu%\data\work\%%b>>temp\4list.tttpath
  852. echo %%d>>temp\4list.tttname
  853. )
  854. )
  855. )
  856. )
  857. for /f %%m in (temp\4list.tttpath) do (
  858. for /f "tokens=2 delims==" %%L in ('findstr /b "金额合计" %%m') do (
  859. echo %%m.%%L>>temp\4list.tttlujing
  860. )
  861. )
  862. set sz=0
  863. for /f "tokens=9 delims=\" %%a in (temp\4list.tttlujing) do (
  864. for /f "tokens=1,3 delims=." %%b in ('echo %%a') do (
  865. echo %%b.%%c>>temp\4list.tttjine
  866. set /a sz+=%%c
  867. )
  868. )
  869. findstr /n .* temp\4list.tttpath>>temp\4list.path
  870. for /f %%a in ('findstr /n .* temp\4list.tttjine') do (
  871. echo %%a>>temp\4list.name
  872. echo=>>temp\4list.name
  873. )
  874. :查询继续显示
  875. cls
  876. echo=
  877. echo=
  878. echo %biaoti% 正在按照 %v% 为条件检索
  879. echo ===================================================================
  880. if exist temp\4list.name (type temp\4list.name) else (
  881. echo 没有查询到包含 %v% 的记录文件
  882. echo 按任意键返回
  883. pause>nul
  884. goto 查询项目记录
  885. )
  886. echo ===================================================================
  887. echo 以 %v% 为条件检索到的项目金额合计:%sz%元
  888. echo=
  889. set /p v1=输入序号查看详情,0=返回:
  890. echo ----------------------------------------------------------------------------------------------------------
  891. if "%v1%"=="0" goto 查询项目记录
  892. for /f "tokens=2 delims=:" %%a in ('findstr /b "%v1%:" temp\4list.path') do (
  893. cls
  894. echo=
  895. echo=
  896. echo %biaoti% 正在按照 %v% 为条件检索
  897. echo ===================================================================
  898. set 展示后选择文件全名含路径=%%a
  899. type %%a
  900. echo ===================================================================
  901. )
  902. pause
  903. goto 查询继续显示
  904. :数据统计
  905. cls
  906. echo=
  907. echo=
  908. echo %biaoti% 数据统计
  909. echo ==============================================================
  910. echo 1.统计总金额
  911. echo 2.统计未结账金额
  912. echo 3.统计已结账金额
  913. echo 4.核查金额记录数据
  914. echo 0.返回
  915. echo ==============================================================
  916. set /p x=请选择:
  917. if "%x%"=="1" goto 统计总金额
  918. if "%x%"=="2" goto 统计未结账金额
  919. if "%x%"=="3" goto 统计已结账金额
  920. if "%x%"=="4" goto 核查金额记录数据
  921. if "%x%"=="0" goto start
  922. goto 数据统计
  923. :统计总金额
  924. cls
  925. echo=
  926. echo=
  927. echo %biaoti% 统计总金额
  928. echo ==============================================================
  929. Setlocal enabledelayedexpansion
  930. for /f %%a in ('dir/ad/b %mulu%\data\work') do (
  931. set c=0
  932. set nian=%%a
  933. echo !nian!年
  934. echo ======
  935. for /f %%b in ('dir/ad/b %mulu%\data\work\%%a') do (
  936. for /f %%c in (%mulu%\data\work\%%a\%%b\heji.jl) do (
  937. set/a c+=%%c
  938. echo %%a年%%b月金额合计为%%c.00
  939. )
  940. )
  941. echo =================================
  942. echo %%a年总计金额为 !c! 元整
  943. echo=
  944. )
  945. for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jine=%%a)
  946. echo 截止目前全部营收为 %jine% 元整
  947. echo=
  948. echo 任意键返回...
  949. pause>nul
  950. goto 数据统计
  951. :统计未结账金额
  952. if exist %mulu%\data\wjz\heji.jl goto 开始统计未结账金额
  953. cls
  954. echo=
  955. echo=
  956. echo %biaoti% 统计未结账金额
  957. echo ==============================================================
  958. echo 错误:没有未结账记录!
  959. pause
  960. goto 数据统计
  961. :开始统计未结账金额
  962. for /f %%z in (%mulu%\data\wjz\heji.jl) do (set jine=%%z)
  963. cls
  964. echo=
  965. echo=
  966. echo %biaoti% 统计未结账金额
  967. echo ==============================================================
  968. echo 未结账金额为 %jine% 元。
  969. pause
  970. goto 数据统计
  971. :统计已结账金额
  972. if exist %mulu%\data\yjz\heji.jl goto 开始统计已结账金额
  973. cls
  974. echo=
  975. echo=
  976. echo %biaoti% 统计已结账金额
  977. echo ==============================================================
  978. echo 错误:没有已结账记录!
  979. pause
  980. goto 数据统计
  981. :开始统计已结账金额
  982. for /f %%F in (%mulu%\data\yjz\heji.jl) do (set jine=%%F)
  983. cls
  984. echo=
  985. echo=
  986. echo %biaoti% 统计已结账金额
  987. echo ==============================================================
  988. echo 已结账金额为 %jine% 元。
  989. pause
  990. goto 数据统计
  991. :核查金额记录数据
  992. set n=
  993. cls
  994. echo=
  995. echo=
  996. echo %biaoti% 核查金额记录数据
  997. echo ==============================================================
  998. :核查总金额
  999. set nian=%date:~0,4%
  1000. set sz=0
  1001. set /a n+=1
  1002. if %n% gtr 12 goto 核查未结账金额
  1003. if %n% geq 10 goto 月份大于等于十
  1004. set yf=0%n%
  1005. :查询月份是否存在
  1006. if exist %mulu%\data\work\%nian%\%yf%\*.* goto 月份有
  1007. goto 核查总金额
  1008. :月份大于等于十
  1009. set yf=%n%
  1010. goto 查询月份是否存在
  1011. :月份有
  1012. for /f %%a in ('dir /s /b %mulu%\data\work\%nian%\%yf%\*.txt') do (
  1013. for /f "tokens=2 delims==" %%b in ('findstr /b "金额合计" %%a') do (
  1014. set /a sz+=%%b
  1015. )
  1016. )
  1017. if exist %mulu%\data\work\%nian%\%yf%\heji.jl goto 开始核查
  1018. set /p a=发现%nian%年%yf%月的合计数据不存在,是否重新创建?1=创建,其他键=返回
  1019. if "%a%"=="1" goto 开始重新创建
  1020. goto 数据统计
  1021. :开始重新创建
  1022. echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
  1023. goto 核查金额记录数据
  1024. :开始核查
  1025. for /f %%a in (%mulu%\data\work\%nian%\%yf%\heji.jl) do (set laozje=%%a)
  1026. if %sz% equ %laozje% goto 总金额一样
  1027. if %sz% gtr %laozje% goto 总金额不一样
  1028. if %sz% lss %laozje% goto 总金额不一样
  1029. :总金额一样
  1030. echo %nian%年%yf%月,总金额 %sz% 元。
  1031. echo ==============================================================
  1032. goto 核查总金额
  1033. :总金额不一样
  1034. echo %nian%年%yf%月,实际总金额 %sz% 元。
  1035. echo ==============================================================
  1036. echo 未结账实际金额:%sz%元。
  1037. echo 金额记录数据为:%laozje%元。
  1038. echo %nian%年%yf%月记录与总金额不符,开始修复...
  1039. echo=
  1040. del %mulu%\data\work\%nian%\%yf%\heji.jl>nul
  1041. echo %sz%>%mulu%\data\work\%nian%\%yf%\heji.jl
  1042. echo 修复完成,按任意键返回
  1043. pause>nul
  1044. goto 核查金额记录数据
  1045. :核查未结账金额
  1046. echo=
  1047. set n=0
  1048. for /f %%b in ('dir /b %mulu%\data\wjz\*.txt') do (
  1049. for /f  "tokens=2 delims==" %%c in ('findstr /b "金额合计" %mulu%\data\wjz\%%b') do (
  1050. set /a n+=%%c
  1051. )
  1052. )
  1053. set xinwjz=%n%
  1054. if exist %mulu%\data\wjz\heji.jl goto 开始核查未结账金额
  1055. set /p a=发现未结账的合计数据不存在,是否重新创建?1=创建,0=返回
  1056. if "%a%"=="1" goto 开始重新创建未结账
  1057. if "%a%"=="0" goto 数据统计
  1058. goto 核查未结账金额
  1059. :开始重新创建未结账
  1060. echo %xinwjz%>%mulu%\data\wjz\heji.jl
  1061. goto 核查未结账金额
  1062. :开始核查未结账金额
  1063. for /f %%a in (%mulu%\data\wjz\heji.jl) do (
  1064. set laowjz=%%a
  1065. )
  1066. if %xinwjz% equ %laowjz% goto 未结账金额一样
  1067. if %xinwjz% gtr %laowjz% goto 未结账金额不一样
  1068. if %xinwjz% lss %laowjz% goto 未结账金额不一样
  1069. :未结账金额不一样
  1070. echo 未结账实际金额:%xinwjz%元。
  1071. echo 金额记录数据为:%laowjz%元。
  1072. echo 未结账金额与记录不符,开始修复...
  1073. echo=
  1074. del %mulu%\data\wjz\heji.jl>nul
  1075. echo %xinwjz%>%mulu%\data\wjz\heji.jl
  1076. echo 修复完成,按任意键返回
  1077. pause>nul
  1078. goto 核查金额记录数据
  1079. :未结账金额一样
  1080. echo 未结账金额 %laowjz% 元。
  1081. echo ==============================================================
  1082. echo 所有核查结束,按任意键返回
  1083. pause>nul
  1084. goto 数据统计
  1085. :fm
  1086. cls
  1087. echo=
  1088. echo=
  1089. echo %biaoti%
  1090. echo ==============================================================
  1091. echo 1.工作项目记录
  1092. echo 2.查询未完成项目记录
  1093. echo 3.查询未结账记录
  1094. echo 4.查询项目记录
  1095. echo 5.数据统计
  1096. echo 6.数据管理
  1097. echo 0.退出
  1098. echo ==============================================================
  1099. goto :eof
  1100. :数据管理
  1101. set a=
  1102. cls
  1103. echo=
  1104. echo=
  1105. echo %biaoti% 数据管理
  1106. echo ==============================================================
  1107. echo 1.刷新数据库
  1108. echo 2.备份数据库
  1109. echo 3.备份管理
  1110. echo 0.返回
  1111. echo ==============================================================
  1112. set /p a=请选择:
  1113. if "%a%"=="1" goto 刷新数据库
  1114. if "%a%"=="2" goto 开始备份
  1115. if "%a%"=="3" goto 备份管理
  1116. if "%a%"=="" goto 数据管理
  1117. goto start
  1118. :刷新数据库
  1119. if exist %mulu%\data\DB_list.txt del /q %mulu%\data\DB_list.txt
  1120. cls
  1121. echo=
  1122. echo=
  1123. echo %biaoti% 刷新数据库
  1124. echo ==============================================================
  1125. echo 正在刷新数据库,请稍等......
  1126. ::m=目录路径
  1127. ::a=读取WORK文件夹下年份目录列表,同时获取年份
  1128. ::b=读取年份文件夹下月份目录列表,同时获取月份
  1129. ::c=读取月份文件夹下日期目录列表,同时获取日期
  1130. ::d=读取日期文件夹下单位名称目录列表,同时获取单位
  1131. ::e=读取单位文件夹下TXT文件列表,同时获取文件名称
  1132. ::
  1133. ::
  1134. ::
  1135. @echo off
  1136. setlocal enabledelayedexpansion
  1137. set m=%mulu%\data\work
  1138. for /f %%a in ('dir /ad /b %m%') do (
  1139. for /f %%b in ('dir /ad /b %m%\%%a') do (
  1140. for /f %%c in ('dir /ad /b %m%\%%a\%%b') do (
  1141. for /f %%d in ('dir /ad /b %m%\%%a\%%b\%%c') do (
  1142. for /f %%e in ('dir /b %m%\%%a\%%b\%%c\%%d\*.txt') do (
  1143. (for %%f in ("%m%\%%a\%%b\%%c\%%d\%%e") do (
  1144. set str=
  1145. for /f "delims=" %%g in ('type %%f') do (
  1146. set str=!str!*%%g
  1147. )
  1148. echo,%%a\%%b\%%c\%%d\%%e!str!
  1149. ))>>"%mulu%\data\DB_list.txt"
  1150. )
  1151. )
  1152. )
  1153. )
  1154. )
  1155. cls
  1156. echo=
  1157. echo=
  1158. echo %biaoti% 刷新数据库
  1159. echo ==============================================================
  1160. echo 数据库刷新完成,按任意键继续......
  1161. pause>nul
  1162. goto start
  1163. :开始备份
  1164. if exist %mulu%\backup\%nian%%yue%%ri% goto 已备份
  1165. cls
  1166. echo=
  1167. echo=
  1168. echo %biaoti% 备份数据
  1169. echo ==============================================================
  1170. echo 正在将数据备份至backup下的%nian%%yue%%ri%文件夹内...
  1171. md %mulu%\backup\%nian%%yue%%ri%
  1172. xcopy /e %mulu%\data %mulu%\backup\%nian%%yue%%ri%
  1173. echo 备份完成,按任意键返回
  1174. pause>nul
  1175. goto start
  1176. :已备份
  1177. cls
  1178. echo=
  1179. echo=
  1180. echo %biaoti% 备份数据
  1181. echo ==============================================================
  1182. echo %nian%年%yue%月%ri%日已备份过数据,如继续将删除当前数据
  1183. echo=
  1184. set /p a=1=继续 0=返回
  1185. if "%a%"=="0" goto start
  1186. if "%a%"=="1" goto 准备开始备份
  1187. goto 已备份
  1188. :准备开始备份
  1189. echo 正在删除当前备份 %nian%%yue%%ri%
  1190. rmdir /s /q %mulu%\backup\%nian%%yue%%ri%
  1191. goto 开始备份
  1192. :备份管理
  1193. cls
  1194. echo=
  1195. echo=
  1196. echo %biaoti% 备份管理
  1197. echo ==============================================================
  1198. dir /ad /b %mulu%\backup
  1199. echo ==============================================================
  1200. set /p b=输入需要操作的备份数据全名,0=返回
  1201. if "%b%"=="0" goto 数据管理
  1202. if not exist %mulu%\backup\%b% goto 备份不存在
  1203. cls
  1204. echo=
  1205. echo=
  1206. echo %biaoti% 备份管理
  1207. echo ==============================================================
  1208. echo 准备操作 %b% 备份
  1209. echo ==============================================================
  1210. set /p c=输入 %b% 将删除该备份,1=恢复 0=返回:
  1211. if "%c%"=="%b%" goto 删除备份
  1212. if "%c%"=="1" goto 恢复备份
  1213. if "%c%"=="0" goto start
  1214. goto 备份管理
  1215. :删除备份
  1216. cls
  1217. echo=
  1218. echo=
  1219. echo %biaoti% 备份数据
  1220. echo ==============================================================
  1221. echo 正在操作 %b% 备份
  1222. echo ==============================================================
  1223. echo 正在删除备份数据 %b%
  1224. rmdir /s /q %mulu%\backup\%b%
  1225. echo 删除完成,任意键返回
  1226. pause>nul
  1227. goto 备份管理
  1228. :恢复备份
  1229. cls
  1230. echo=
  1231. echo=
  1232. echo %biaoti% 备份数据
  1233. echo ==============================================================
  1234. dir /ad /b %mulu%\backup
  1235. echo=
  1236. echo 准备操作 %b% 备份
  1237. echo ==============================================================
  1238. echo 正在恢复备份数据 %b%
  1239. xcopy /e /f /y %mulu%\backup\%b%\*.* %mulu%\data
  1240. echo 恢复完成,任意键返回
  1241. pause>nul
  1242. goto 备份管理
  1243. :备份不存在
  1244. echo 备份文件 %b% 不存在,任意键重新输入
  1245. pause>nul
  1246. goto 备份管理
  1247. :替换数据库内容
  1248. if exist temp\yk.vbs del /q temp\yk.vbs>nul
  1249. for /f %%a in ('findstr /c:"%name%" %mulu%\data\DB_list.txt') do (
  1250. for /f "tokens=1-18 delims=*" %%b in ('echo %%a') do (
  1251. rem 路径
  1252. set lujing=%%b
  1253. rem 客户单位
  1254. set khdw=%%c
  1255. rem 客户项目
  1256. set khxm=%%d
  1257. rem 具体项目
  1258. set jtxm=%%e
  1259. rem 项目单价
  1260. set xmdj=%%f
  1261. rem 项目数量
  1262. set xmsl=%%g
  1263. rem 金额合计
  1264. set jehj=%%h
  1265. rem 项目联系人
  1266. set xmlxr=%%i
  1267. rem 联系电话
  1268. set lxdh=%%j
  1269. rem 开始有新老两个变量
  1270. rem **开具
  1271. set lfpkj=%%k
  1272. rem 开票日期
  1273. set lkprq=%%l
  1274. rem **号码
  1275. set lfphm=%%m
  1276. rem 结账方式
  1277. set ljzfs=%%n
  1278. rem 支票号码
  1279. set lzphm=%%o
  1280. rem 银行流水
  1281. set lyhls=%%p
  1282. rem 创建日期
  1283. set lcjrq=%%q
  1284. rem 结账日期
  1285. set ljzrq=%%r
  1286. rem 备注内容
  1287. set lbznr=%%s
  1288. ))
  1289. if "%xfpkj%"=="" set xfpkj=%lfpkj%
  1290. if "%xkprq%"=="" set xkprq=%lkprq%
  1291. if "%xfphm%"=="" set xfphm=%lfphm%
  1292. if "%xjzfs%"=="" set xjzfs=%ljzfs%
  1293. if "%xzphm%"=="" set xzphm=%lzphm%
  1294. if "%xyhls%"=="" set xyhls=%lyhls%
  1295. if "%xjzrq%"=="" set xjzrq=%ljzrq%
  1296. if "%xbznr%"=="" set xbznr=%lbznr%
  1297. echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
  1298. echo ' 读取文件>>temp\yk.vbs
  1299. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",1)>>temp\yk.vbs
  1300. echo content = stream.readall()>>temp\yk.vbs
  1301. echo call stream.close()>>temp\yk.vbs
  1302. echo ' 替换字符串>>temp\yk.vbs
  1303. 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
  1304. echo ' 保存文件>>temp\yk.vbs
  1305. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",2)>>temp\yk.vbs
  1306. echo call stream.write(content)>>temp\yk.vbs
  1307. echo call stream.close()>>temp\yk.vbs
  1308. call temp\yk.vbs
  1309. goto :eof
  1310. :替换记录文件内容
  1311. if exist temp\yk.vbs del /q temp\yk.vbs>nul
  1312. for /f %%a in ('findstr "%chaxun%" %name%') do (set yuanjilu=%%a)
  1313. echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
  1314. echo ' 读取文件>>temp\yk.vbs
  1315. echo set stream = fso.opentextfile("%name%",1)>>temp\yk.vbs
  1316. echo content = stream.readall()>>temp\yk.vbs
  1317. echo call stream.close()>>temp\yk.vbs
  1318. echo ' 替换字符串>>temp\yk.vbs
  1319. echo content = replace(content,"%yuanjilu%","%xinjilu%")>>temp\yk.vbs
  1320. echo ' 保存文件>>temp\yk.vbs
  1321. echo set stream = fso.opentextfile("%name%",2)>>temp\yk.vbs
  1322. echo call stream.write(content)>>temp\yk.vbs
  1323. echo call stream.close()>>temp\yk.vbs
  1324. call temp\yk.vbs
  1325. goto :eof
  1326. :vbs计算加法
  1327. if exist temp\sz.txt del /q temp\sz.txt >nul
  1328. if exist temp\js.vbs del /q temp\js.vbs >nul
  1329. echo A= %jisuana% >>temp\js.vbs
  1330. echo B= %jisuanb% >>temp\js.vbs
  1331. echo jieguo =eval(0+ A + B)>>temp\js.vbs
  1332. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  1333. call temp\js.vbs
  1334. goto :eof
  1335. :vbs计算减法
  1336. if exist temp\sz.txt del /q temp\sz.txt >nul
  1337. if exist temp\js.vbs del /q temp\js.vbs >nul
  1338. echo A=%jisuana%>>temp\js.vbs
  1339. echo B=%jisuanb%>>temp\js.vbs
  1340. echo jieguo=eval(0+A-B)>>temp\js.vbs
  1341. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  1342. call temp\js.vbs
  1343. goto :eof
  1344. :vbs计算乘法
  1345. if exist temp\sz.txt del /q temp\sz.txt >nul
  1346. if exist temp\js.vbs del /q temp\js.vbs >nul
  1347. echo A= %jisuana% >>temp\js.vbs
  1348. echo B= %jisuanb% >>temp\js.vbs
  1349. echo jieguo =eval(0+ A * B)>>temp\js.vbs
  1350. echo createobject("scripting.filesystemobject").createtextfile("temp\sz.txt",true).write jieguo>>temp\js.vbs
  1351. call temp\js.vbs
  1352. goto :eof
  1353. :未结账转结账后处理文件
  1354. rem 在数据库查找记录文件所在的work路径
  1355. for /f "tokens=1-4 delims=\" %%a in ('findstr /c:"%wjznr%" %mulu%\data\DB_list.txt') do (
  1356. set worknian=%%a
  1357. set workyue=%%b
  1358. set wenjianlujing=%%a\%%b\%%c\%%d)
  1359. rem 开始减法计算wjz合计总金额
  1360. for /f %%a in (%mulu%\data\wjz\heji.jl) do (set jisuana=%%a)
  1361. for /f "tokens=2 delims==" %%a in ('findstr /b "金额合计=" %mulu%\data\wjz\%wjznr%.txt') do (set jisuanb=%%a)
  1362. call:vbs计算减法
  1363. move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  1364. rem 如有则删除wwc目录下记录文件
  1365. if exist %mulu%\data\wwc\%wjznr%.txt del /q %mulu%\data\wwc\%wjznr%.txt
  1366. rem 拷贝wjz目录下记录文件到work对应的路径下
  1367. copy /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\work\%wenjianlujing% >nul
  1368. rem 如没有yjz目录(第一次结账的情况下)就建立yjz目录
  1369. if not exist %mulu%\data\yjz md %mulu%\data\yjz
  1370. rem 移动wjz目录下文件到yjz目录下
  1371. move /y %mulu%\data\wjz\%wjznr%.txt %mulu%\data\yjz >nul
  1372. rem 开始加法计算yjz合计总金额
  1373. if exist %mulu%\data\yjz\heji.jl goto 计算已结账金额
  1374. echo %jisuanb%>%mulu%\data\yjz\heji.jl
  1375. goto :eof
  1376. :计算已结账金额
  1377. for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jisuana=%%a)
  1378. call:vbs计算加法
  1379. move /y temp\sz.txt %mulu%\data\yjz\heji.jl>nul
  1380. goto :eof
  1381. :没有未结账记录
  1382. cls
  1383. echo=
  1384. echo=
  1385. echo %biaoti% 查询未结账记录
  1386. echo ==============================================================
  1387. echo 没有未结账记录!
  1388. echo ==============================================================
  1389. pause
  1390. goto start
  1391. :编辑文件开始
  1392. setlocal enabledelayedexpansion
  1393. if exist temp\new.txt del /q temp\new.txt>nul
  1394. if exist temp\bjwjxmdj.xiugai del /q temp\bjwjxmdj.xiugai>nul
  1395. if exist temp\bjwj.jinehejigaibian del /q temp\bjwj.jinehejigaibian>nul
  1396. cls
  1397. echo=
  1398. echo=
  1399. echo %biaoti% 编辑记录文件内容
  1400. echo ==============================================================
  1401. for /f "delims=" %%a in (%编辑文件路径含后缀名%) do (
  1402. for /f "tokens=1,2 delims==" %%b in ('echo %%a') do (
  1403. set denghaozuobian=%%b
  1404. set denghaoyoubian=%%c
  1405. set xiangmuxiugai=
  1406. cls
  1407. echo=
  1408. echo=
  1409. echo %biaoti% 编辑记录文件内容
  1410. echo ==============================================================
  1411. echo 新文件内容
  1412. echo=
  1413. if exist temp\new.txt type temp\new.txt
  1414. echo ==============================================================
  1415. if exist temp\bjwj.jinehejijisuan set denghaoyoubian=!xjehjsz!&&set 修改文件金额合计=!xjehjsz!&&del /q temp\bjwj.jinehejijisuan>nul
  1416. if exist temp\bjwj.xiangmudanjiayixiugai set xiangmuxiugai=!denghaoyoubian!&&del /q temp\bjwj.xiangmudanjiayixiugai >nul
  1417. echo !denghaozuobian!=!denghaoyoubian!
  1418. echo=
  1419. set /p xiangmuxiugai=请输入以上项目的修改结果,如不改请直接回车,0=返回:
  1420. if "!xiangmuxiugai!"=="0" goto 编辑结束
  1421. if "!denghaozuobian!"=="项目单价" set xxmdjsz=!denghaoyoubian!
  1422. if "!denghaozuobian!"=="项目数量" set xxmslsz=!denghaoyoubian!
  1423. if "!xiangmuxiugai!"=="" (echo !denghaozuobian!=!denghaoyoubian!>>temp\new.txt
  1424. ) else (
  1425. echo %%b=!xiangmuxiugai!>>temp\new.txt
  1426. if "%%b"=="客户单位" set xkhdw=客户单位=!xiangmuxiugai!
  1427. if "%%b"=="客户项目" set xkhxm=客户项目=!xiangmuxiugai!
  1428. if "%%b"=="具体项目" set xjtxm=具体项目=!xiangmuxiugai!
  1429. if "%%b"=="项目单价" set xxmdj=项目单价=!xiangmuxiugai!&&set xxmdjsz=!xiangmuxiugai!&&echo 123>temp\bjwj.xiangmudanjiayixiugai
  1430. if "%%b"=="项目数量" set xxmsl=项目数量=!xiangmuxiugai!&&set xxmslsz=!xiangmuxiugai!&&call:编辑文件中查询金额合计是否一致
  1431. if "%%b"=="金额合计" set xjehj=金额合计=!xiangmuxiugai!
  1432. if "%%b"=="项目联系人" set xxmlxr=项目联系人=!xiangmuxiugai!
  1433. if "%%b"=="联系电话" set xlxdh=联系电话=!xiangmuxiugai!
  1434. if "%%b"=="**开具" set xfpkj=**开具=!xiangmuxiugai!
  1435. if "%%b"=="开票日期" set xkprq=开票日期=!xiangmuxiugai!
  1436. if "%%b"=="**号码" set xfphm=**号码=!xiangmuxiugai!
  1437. if "%%b"=="结账方式" set xjzfs=结账方式=!xiangmuxiugai!
  1438. if "%%b"=="支票号码" set xzphm=支票号码=!xiangmuxiugai!
  1439. if "%%b"=="银行流水" set xyhls=银行流水=!xiangmuxiugai!
  1440. if "%%b"=="创建日期" set xcjrq=创建日期=!xiangmuxiugai!
  1441. if "%%b"=="结账日期" set xjzrq=结账日期=!xiangmuxiugai!)
  1442. for /f %%d in ('findstr /c:"%编辑文件全名%" %mulu%\data\DB_list.txt') do (
  1443. for /f "tokens=1-17 delims=*" %%e in ('echo %%d') do (
  1444. rem 路径
  1445. set lujing=%%e
  1446. rem 客户单位
  1447. set lkhdw=%%f
  1448. rem 客户项目
  1449. set lkhxm=%%g
  1450. rem 具体项目
  1451. set ljtxm=%%h
  1452. rem 项目单价
  1453. set lxmdj=%%i
  1454. rem 项目数量
  1455. set lxmsl=%%j
  1456. rem 金额合计
  1457. set ljehj=%%k
  1458. rem 项目联系人
  1459. set lxmlxr=%%l
  1460. rem 联系电话
  1461. set llxdh=%%m
  1462. rem **开具
  1463. set lfpkj=%%n
  1464. rem 开票日期
  1465. set lkprq=%%o
  1466. rem **号码
  1467. set lfphm=%%p
  1468. rem 结账方式
  1469. set ljzfs=%%q
  1470. rem 支票号码
  1471. set lzphm=%%r
  1472. rem 银行流水
  1473. set lyhls=%%s
  1474. rem 创建日期
  1475. set lcjrq=%%t
  1476. rem 结账日期
  1477. set ljzrq=%%u))
  1478. if "!xkhdw!"=="" set xkhdw=!lkhdw!
  1479. if "!xkhxm!"=="" set xkhxm=!lkhxm!
  1480. if "!xjtxm!"=="" set xjtxm=!ljtxm!
  1481. if "!xxmdj!"=="" set xxmdj=!lxmdj!
  1482. if "!xxmsl!"=="" set xxmsl=!lxmsl!
  1483. if "!xjehj!"=="" set xjehj=!ljehj!
  1484. if "!xxmlxr!"=="" set xxmlxr=!lxmlxr!
  1485. if "!xlxdh!"=="" set xlxdh=!llxdh!
  1486. if "!xfpkj!"=="" set xfpkj=!lfpkj!
  1487. if "!xkprq!"=="" set xkprq=!lkprq!
  1488. if "!xfphm!"=="" set xfphm=!lfphm!
  1489. if "!xjzfs!"=="" set xjzfs=!ljzfs!
  1490. if "!xzphm!"=="" set xzphm=!lzphm!
  1491. if "!xyhls!"=="" set xyhls=!lyhls!
  1492. if "!xcjrq!"=="" set xcjrq=!lcjrq!
  1493. if "!xjzrq!"=="" set xjzrq=!ljzrq!))
  1494. if exist temp\yk.vbs del /q temp\yk.vbs>nul
  1495. :询问是否更新
  1496. set a=
  1497. cls
  1498. echo=
  1499. echo=
  1500. echo %biaoti% 编辑记录文件内容
  1501. echo ==============================================================
  1502. type temp\new.txt
  1503. echo ==============================================================
  1504. set /p a=确定更新文件【1=确定 0=返回】
  1505. if "%a%"=="0" goto 查询未结账记录
  1506. if "%a%"=="1" goto 确定更新文件
  1507. goto 询问是否更新
  1508. :确定更新文件
  1509. rem 确定文件所在work目录下路径
  1510. for /f "tokens=1-4 delims=\" %%a in ('findstr /c:"%编辑文件全名%" %mulu%\data\DB_list.txt') do (
  1511. set worklujing=%%a\%%b\%%c\%%d
  1512. set jineworklujing=%%a\%%b
  1513. )
  1514. rem 更换数据库
  1515. echo set fso = createobject("scripting.filesystemobject")>>temp\yk.vbs
  1516. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",1)>>temp\yk.vbs
  1517. echo content = stream.readall()>>temp\yk.vbs
  1518. echo call stream.close()>>temp\yk.vbs
  1519. 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
  1520. echo set stream = fso.opentextfile("%mulu%\data\DB_list.txt",2)>>temp\yk.vbs
  1521. echo call stream.write(content)>>temp\yk.vbs
  1522. echo call stream.close()>>temp\yk.vbs
  1523. call temp\yk.vbs
  1524. if exist temp\yk.vbs del /q temp\yk.vbs>nul
  1525. rem 拷贝文件到wwc
  1526. if exist %mulu%\data\wwc\%编辑文件全名% copy /y temp\new.txt %mulu%\data\wwc\%编辑文件全名% >nul
  1527. rem 拷贝文件到yjz
  1528. if not exist %mulu%\data\yjz\%编辑文件全名% goto 拷贝文件到wjz
  1529. copy /y temp\new.txt %mulu%\data\yjz\%编辑文件全名% >nul
  1530. if not exist temp\bjwj.jinehejigaibian goto 拷贝文件到wjz
  1531. rem 开始计算yjz金额变换
  1532. for /f %%a in (%mulu%\data\yjz\heji.jl) do (set jisuana=%%a)
  1533. for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
  1534. for /f "tokens=2 delims==" %%b in ('echo %%a') do (
  1535. set jisuanb=%%b
  1536. )
  1537. )
  1538. call:vbs计算减法
  1539. for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
  1540. set jisuanb=%修改文件金额合计%
  1541. call:vbs计算加法
  1542. move /y temp\sz.txt %mulu%\data\yjz\heji.jl >nul
  1543. rem 拷贝文件到wjz
  1544. :拷贝文件到wjz
  1545. if exist %mulu%\data\wjz\%编辑文件全名% copy /y temp\new.txt %mulu%\data\wjz\%编辑文件全名% >nul
  1546. if not exist temp\bjwj.jinehejigaibian goto 移动文件到work
  1547. rem 开始计算wjz金额变换
  1548. for /f %%a in (%mulu%\data\wjz\heji.jl) do (set jisuana=%%a)
  1549. for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
  1550. for /f "tokens=2 delims==" %%b in ('echo %%a') do (
  1551. set jisuanb=%%b
  1552. )
  1553. )
  1554. call:vbs计算减法
  1555. for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
  1556. set jisuanb=%修改文件金额合计%
  1557. call:vbs计算加法
  1558. move /y temp\sz.txt %mulu%\data\wjz\heji.jl >nul
  1559. rem 开始计算work金额变换
  1560. for /f %%a in (%mulu%\data\work\%jineworklujing%\heji.jl) do (set jisuana=%%a)
  1561. for /f %%a in ('findstr /c:"金额合计" %mulu%\data\work\%worklujing%\%编辑文件全名%') do (
  1562. for /f "tokens=2 delims==" %%b in ('echo %%a') do (
  1563. set jisuanb=%%b
  1564. )
  1565. )
  1566. call:vbs计算减法
  1567. if exist temp\js.vbs del /q temp\js.vbs >nul
  1568. for /f %%a in (temp\sz.txt) do (set jisuana=%%a)
  1569. set jisuanb=%修改文件金额合计%
  1570. call:vbs计算加法
  1571. if exist temp\js.vbs del /q temp\js.vbs >nul
  1572. move /y temp\sz.txt %mulu%\data\work\%jineworklujing%\heji.jl >nul
  1573. rem 移动文件到work
  1574. :移动文件到work
  1575. move /y temp\new.txt %mulu%\data\work\%worklujing%\%编辑文件全名% >nul
  1576. :编辑结束
  1577. goto :eof
  1578. :编辑文件中查询金额合计是否一致
  1579. set jisuana=%xxmdjsz%
  1580. set jisuanb=%xxmslsz%
  1581. call:vbs计算乘法
  1582. for /f %%a in (temp\sz.txt) do (set xjehjsz=%%a)
  1583. for /f "tokens=2 delims==" %%a in ('findstr /b "金额合计" %编辑文件路径含后缀名%') do (set ljehj=%%a)
  1584. if "%ljehj%"=="%xjehjsz%" goto :eof
  1585. echo 123>temp\bjwj.jinehejijisuan
  1586. echo 123>temp\bjwj.jinehejigaibian
  1587. goto :eof
  1588. :end
复制代码

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

TOP

返回列表