@echo off
setlocal enabledelayedexpansion
echo 格局程序
echo.
echo 作者:phenix
echo.
echo 联系方式:279682817@qq.com
echo.
:encode
rem 输入四柱信息
set /p bazi=请输入生辰八字(格式:庚子 丁亥 乙卯 乙酉):
echo.
call :decode !bazi!rem 解析四柱部分
:decode
rem 获取行号
set rownum=
if exist %CD%\格局记录.txt (
set rownum=0
for /f "tokens=*" %%z in (%CD%\格局记录.txt) do (
set /a rownum+=1
)
set /a rownum=!rownum!/4+1
) else (
set rownum=1
)
echo.>>%CD%\格局记录.txt
echo !rownum!.%1 %2 %3 %4>>%CD%\格局记录.txt
rem 获取年柱,月柱,日柱和时柱
set year=%1
set month=%2
set day=%3
set time=%4
rem 获取年月日时干支
set niangan=!year:~0,1!
set nianzhi=!year:~1!
set yuegan=!month:~0,1!
set yuezhi=!month:~1!
set rigan=!day:~0,1!
set rizhi=!day:~1!
set shigan=!time:~0,1!
set shizhi=!time:~1!
rem 打印年月日时干支
echo 年干=!niangan!  年支=!nianzhi!  月干=!yuegan!  月支=!yuezhi!  日干=!rigan!  日支=!rizhi!  时干=!shigan!  时支=!shizhi!
echo.
rem 日主字典:格式:日主 比肩劫财食神伤官偏财正财七杀正官偏印正印 主气中气余气地支
if not exist %temp%\rizhushishen.txt (
echo 甲 比肩:甲,劫财:乙,食神:丙,伤官:丁,偏财:戊,正财:己,七杀:庚,正官:辛,偏印:壬,正印:癸 主气:寅;无;无,中气:亥;无;无,余气:无;无;无>%temp%\rizhushishen.txt
echo 乙 比肩:乙,劫财:甲,食神:丁,伤官:丙,偏财:己,正财:戊,七杀:辛,正官:庚,偏印:癸,正印:壬 主气:卯;无;无,中气:辰;无;无,余气:未;无;无>>%temp%\rizhushishen.txt
echo 丙 比肩:丙,劫财:丁,食神:戊,伤官:己,偏财:庚,正财:辛,七杀:壬,正官:癸,偏印:甲,正印:乙 主气:巳;无;无,中气:寅;无;无,余气:无;无;无>>%temp%\rizhushishen.txt
echo 丁 比肩:丁,劫财:丙,食神:己,伤官:戊,偏财:辛,正财:庚,七杀:癸,正官:壬,偏印:乙,正印:甲 主气:午;无;无,中气:未;无;无,余气:戌;无;无>>%temp%\rizhushishen.txt
echo 戊 比肩:戊,劫财:己,食神:庚,伤官:辛,偏财:壬,正财:癸,七杀:甲,正官:乙,偏印:丙,正印:丁 主气:辰;戌;无,中气:无;无;无,余气:寅;巳;申>>%temp%\rizhushishen.txt
echo 己 比肩:己,劫财:戊,食神:辛,伤官:庚,偏财:癸,正财:壬,七杀:乙,正官:甲,偏印:丁,正印:丙 主气:丑;未;无,中气:午;无;无,余气:无;无;无>>%temp%\rizhushishen.txt
echo 庚 比肩:庚,劫财:辛,食神:壬,伤官:癸,偏财:甲,正财:乙,七杀:丙,正官:丁,偏印:戊,正印:己 主气:申;无;无,中气:巳;无;无,余气:无;无;无>>%temp%\rizhushishen.txt
echo 辛 比肩:辛,劫财:庚,食神:癸,伤官:壬,偏财:乙,正财:甲,七杀:丁,正官:丙,偏印:己,正印:戊 主气:酉;无;无,中气:戌;无;无,余气:丑;无;无>>%temp%\rizhushishen.txt
echo 壬 比肩:壬,劫财:癸,食神:甲,伤官:乙,偏财:丙,正财:丁,七杀:戊,正官:己,偏印:庚,正印:辛 主气:亥;无;无,中气:申;无;无,余气:无;无;无>>%temp%\rizhushishen.txt
echo 癸 比肩:癸,劫财:壬,食神:乙,伤官:甲,偏财:丁,正财:丙,七杀:己,正官:戊,偏印:辛,正印:庚 主气:子;无;无,中气:丑;无;无,余气:辰;无;无>>%temp%\rizhushishen.txt
)
rem 年月时干十神、月令透干、本中余气透干、本中余气十神、月令本气、月令本气十神、格局十神、天干阴阳、月令气
set nianganshishen=
set yueganshishen=
set shiganshishen=
set yuelingtougan=
set benqitougan=
set zhongqitougan=
set yuqitougan=
set benqishishen=
set zhongqishishen=
set yuqishishen=
set yuelingbenqi=
set yuelingbenqishishen=
set gejushishen=
set yinyang=
set yuelingqi=
set row=1
rem 解析日主字典
for /f "tokens=1,2,3*" %%a in (%temp%\rizhushishen.txt) do (
rem 日主、十神、日主在月令主中余气
set rizhu=%%a
set shishen=%%b
set dizhiqi=%%c
rem 获取日主信息
if !rigan! equ !rizhu! (
rem 判断日主阴阳
set /a yinyang=!row!%%2
if !yinyang! equ 0 (
set yinyang=阴
) else (
set yinyang=阳
)
rem 解析十神
for /f "tokens=1,2,3,4,5,6,7,8,9,10* delims=," %%c in ("!shishen!") do (
rem 当前日主十神
echo %%c>%temp%\dangqianrizhushishen.txt
echo %%d>>%temp%\dangqianrizhushishen.txt
echo %%e>>%temp%\dangqianrizhushishen.txt
echo %%f>>%temp%\dangqianrizhushishen.txt
echo %%g>>%temp%\dangqianrizhushishen.txt
echo %%h>>%temp%\dangqianrizhushishen.txt
echo %%i>>%temp%\dangqianrizhushishen.txt
echo %%j>>%temp%\dangqianrizhushishen.txt
echo %%k>>%temp%\dangqianrizhushishen.txt
echo %%l>>%temp%\dangqianrizhushishen.txt
rem 解析当前日主十神字典
for /f "tokens=1,2* delims=:" %%m in (%temp%\dangqianrizhushishen.txt) do (
rem 十神和天干
set shishen=%%m
set tiangan=%%n
rem 判断年月日干十神
if !niangan! equ !tiangan! (
set nianganshishen=!shishen!
)
if !yuegan! equ !tiangan! (
set yueganshishen=!shishen!
)
if !shigan! equ !tiangan! (
set shiganshishen=!shishen!
)
)
)
)
rem 分别判断年月时透不透月令气
if !niangan! equ !rizhu! (
for /f "tokens=1,2,3* delims=," %%o in ("!dizhiqi!") do (
rem 本中余气
set benqi=%%o
set zhongqi=%%p
set yuqi=%%q
echo !benqi:~3!>%temp%\niancanggan.txt
echo !zhongqi:~3!>>%temp%\niancanggan.txt
echo !yuqi:~3!>>%temp%\niancanggan.txt
set index=1
rem 本中余气内部解析
for /f "tokens=1,2,3* delims=;" %%r in (%temp%\niancanggan.txt) do (
echo %%r>%temp%\dangqiancanggan.txt
echo %%s>>%temp%\dangqiancanggan.txt
echo %%t>>%temp%\dangqiancanggan.txt
for /f "tokens=*" %%u in (%temp%\dangqiancanggan.txt) do (
rem 判断月支,并记录透的是本中余气和序号
if "%%u" equ "!yuezhi!" (
if !index! equ 1 (
set benqitougan=本气:!niangan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 2 (
set zhongqitougan=中气:!niangan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 3 (
set yuqitougan=余气:!niangan!
set yuelingqi=!yuelingqi!!index!
)
)
)
set /a index+=1
)
)
)
if !yuegan! equ !rizhu! (
for /f "tokens=1,2,3* delims=," %%o in ("!dizhiqi!") do (
set benqi=%%o
set zhongqi=%%p
set yuqi=%%q
echo !benqi:~3!>%temp%\yuecanggan.txt
echo !zhongqi:~3!>>%temp%\yuecanggan.txt
echo !yuqi:~3!>>%temp%\yuecanggan.txt
set index=1
for /f "tokens=1,2,3* delims=;" %%r in (%temp%\yuecanggan.txt) do (
echo %%r>%temp%\dangqiancanggan.txt
echo %%s>>%temp%\dangqiancanggan.txt
echo %%t>>%temp%\dangqiancanggan.txt
for /f "tokens=*" %%u in (%temp%\dangqiancanggan.txt) do (
if "%%u" equ "!yuezhi!" (
if !index! equ 1 (
set benqitougan=本气:!yuegan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 2 (
set zhongqitougan=中气:!yuegan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 3 (
set yuqitougan=余气:!yuegan!
set yuelingqi=!yuelingqi!!index!
)
)
)
set /a index+=1
)
)
)
if !shigan! equ !rizhu! (
for /f "tokens=1,2,3* delims=," %%o in ("!dizhiqi!") do (
set benqi=%%o
set zhongqi=%%p
set yuqi=%%q
echo !benqi:~3!>%temp%\shicanggan.txt
echo !zhongqi:~3!>>%temp%\shicanggan.txt
echo !yuqi:~3!>>%temp%\shicanggan.txt
set index=1
for /f "tokens=1,2,3* delims=;" %%r in (%temp%\shicanggan.txt) do (
echo %%r>%temp%\dangqiancanggan.txt
echo %%s>>%temp%\dangqiancanggan.txt
echo %%t>>%temp%\dangqiancanggan.txt
for /f "tokens=*" %%u in (%temp%\dangqiancanggan.txt) do (
if "%%u" equ "!yuezhi!" (
if !index! equ 1 (
set benqitougan=本气:!shigan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 2 (
set zhongqitougan=中气:!shigan!
set yuelingqi=!yuelingqi!!index!
)
if !index! equ 3 (
set yuqitougan=余气:!shigan!
set yuelingqi=!yuelingqi!!index!
)
)
)
set /a index+=1
)
)
)
set /a row+=1
)
rem 获取月令本中余气十神
for /f "tokens=1,2* delims=:" %%a in (%temp%\dangqianrizhushishen.txt) do (
set shishen=%%a
set tiangan=%%b
if not "!benqitougan!" equ "" (
if !benqitougan:~3! equ !tiangan! (
set benqishishen=!shishen!
)
)
if not "!zhongqitougan!" equ "" (
if !zhongqitougan:~3! equ !tiangan! (
set zhongqishishen=!shishen!
)
)
if not "!yuqitougan!" equ "" (
if !yuqitougan:~3! equ !tiangan! (
set yuqishishen=!shishen!
)
)
)
echo 年干透出!nianganshishen! 月干透出!yueganshishen! 时干透出!shiganshishen!
echo.
echo.>>%CD%\格局记录.txt
echo 年干透出!nianganshishen! 月干透出!yueganshishen! 时干透出!shiganshishen!>>%CD%\格局记录.txt
if not "!yuelingqi!" equ "" (
rem 设置非比劫格局十神
if not "!benqishishen!" equ "" (
if not "!benqishishen!" equ "劫财" (
if not "!benqishishen!" equ "比肩" (
set gejushishen=!benqishishen!
)
)
)
if "!gejushishen!" equ "" (
if not "!zhongqishishen!" equ "" (
if not "!zhongqishishen!" equ "劫财" (
if not "!zhongqishishen!" equ "比肩" (
set gejushishen=!zhongqishishen!
)
)
)
)
if "!gejushishen!" equ "" (
if not "!yuqishishen!" equ "" (
if not "!yuqishishen!" equ "劫财" (
if not "!yuqishishen!" equ "比肩" (
set gejushishen=!yuqishishen!
)
)
)
)
rem 藏干为一个时比肩劫财,获取比肩还是劫财
if "!gejushishen!" equ "" (
set idx=!yuelingqi:~0,1!
if !idx! equ 1 (
set gejushishen=!benqishishen!
)
if !idx! equ 2 (
set gejushishen=!zhongqishishen!
)
if !idx! equ 3 (
set gejushishen=!yuqishishen!
)
)
rem 比劫格局处理
if "!gejushishen!" equ "劫财" (
if "!yinyang!" equ "阳" (
set gejushishen=阳刃
) else (
set gejushishen=月劫
)
)
if "!gejushishen!" equ "比肩" (
set gejushishen=建禄
)
echo 月令透干:!benqitougan!!benqishishen!!zhongqitougan!!zhongqishishen!!yuqitougan!!yuqishishen!
echo.
echo 格局:!gejushishen!格
echo.
echo.>>%CD%\格局记录.txt
echo 月令透干:!benqitougan!!benqishishen!!zhongqitougan!!zhongqishishen!!yuqitougan!!yuqishishen!>>%CD%\格局记录.txt
echo.>>%CD%\格局记录.txt
echo 格局:!gejushishen!格>>%CD%\格局记录.txt
) else (
rem 不透月令气,取月令本气
for /f "tokens=*" %%a in ('findstr 主气:.*!yuezhi!.*中气.* %temp%\rizhushishen.txt') do (
set yuelingbenqi=%%a
set yuelingbenqi=!yuelingbenqi:~0,1!
for /f "tokens=1,2* delims=:" %%b in (%temp%\dangqianrizhushishen.txt) do (
set shishen=%%b
set tiangan=%%c
rem 处理比劫
if "!yuelingbenqi!" equ "!tiangan!" (
set yuelingbenqishishen=!shishen!
if "!yuelingbenqishishen!" equ "劫财" (
if "!yinyang!" equ "阳" (
set gejushishen=阳刃
) else (
set gejushishen=月劫
)
) else (
if "!yuelingbenqishishen!" equ "比肩" (
set gejushishen=建禄
) else (
set gejushishen=!yuelingbenqishishen!
)
)
)
)
)
echo 月令不透干
echo.
echo 格局:取月令本气!yuelingbenqi!,!gejushishen!格
echo.
echo.>>%CD%\格局记录.txt
echo 月令不透干>>%CD%\格局记录.txt
echo.>>%CD%\格局记录.txt
echo 格局:取月令本气!yuelingbenqi!,!gejushishen!格>>%CD%\格局记录.txt
)
echo 子平格局案例:http://www.360doc.cn/mip/295175076.html,点"展开剩余内容"看全文。
echo.
goto :encode

使用方法:文本编辑器保存为,八字格局.bat,双击运行

win10格局法判断八字相关推荐

  1. win10 uwp 如何判断一个对象被移除

    win10 uwp 如何判断一个对象被移除 原文:win10 uwp 如何判断一个对象被移除 有时候需要知道某个元素是否已经被移除,在优化内存的时候,有时候无法判断一个元素是否在某个地方被引用,就需要 ...

  2. 面积法判断多边形顺逆时针

    面积法判断多边形顺逆时针 // 输入:按照顺序输入多边形的轮廓顶点 // 输出:0代表数据有问题,-1代表逆时针,1代表顺时针 int estimateContourType(std::vector& ...

  3. 图的遍历(染色法判断奇环)

    图的遍历(染色法判断奇环) 传送门 思路:首先图应该为连通图,所需要加的边数即addedge=add_{edge}=addedge​=连通块数−1-1−1 然后又因为是要每次走两步,即最后要走偶数步即 ...

  4. 导数法判断函数的单调性的策略【中阶和高阶辅导】

    前言 关于用导数法判断函数的单调性问题,教材上所举例子是从数的角度求解导函数的正负,从而判断原函数的单调性,所以学生就依葫芦画瓢,碰到这类问题都这样做,但是他会发现在高三中的大多数同类题目都不能求解, ...

  5. 启动计算机引导windows10,Win10电脑如何判断系统的启动方式

    自Win7之后,Windows系统的启动方式就分为传统的BIOS和新型的UEFI启动方式,有些使用win10系统的朋友想要了解自己电脑的启动方式,但是该如何进行判断呢?今天小编就跟大家介绍Win10电 ...

  6. python射线法判断点是否在多边形内

    python3射线法判断点是否在多边形内 射线法 首先我们要先理解什么是射线法.射线法的意思是:在随机点上做一条平行于x轴的射线,方向是x轴正方向,看这条射线与多边形区域的交点个数,如果是偶数,那么这 ...

  7. c#竖直射线法判断点是否再多边形里面

    一.开发环境: VS2017   C#winform 二.竖直射线法大致介绍 通过被判断的点P(x0,y0)引出竖直的上下两条射线,如果两条射线与多变形的交点都为奇数个,那么这个点再多边形里面,反之, ...

  8. hdu 5285(染色法判断二分图)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5285 解题思路:很明显的是二分图的判定,用染色法即可. 不过这题有一个坑,当n<=1和m=0时要 ...

  9. 快慢法判断单链表中是否有循环链表

    题目:写个算法,判断在一个单向链表中是否存在循环链表. 有个经典的算法就是解决这个问题的,好象是叫快慢法.他的原理是,如果A,B两人从同一地点出发,B的速度大于A,那么如果存在一个环的话,B和A肯定是 ...

最新文章

  1. js中定义变量之②var let const的区别
  2. 微信小程序 文字居中
  3. c#如何跨线程调用窗体控件
  4. centOS安装Mysql指南
  5. HH SaaS电商系统的拼团系统设计
  6. mysql 中ak_数据库ak
  7. 8086寄存器的配合使用
  8. lambda,reserve list, list comprehension, string of slice
  9. 复盘!12 小时清掉 3500 份生财日历
  10. 30天敏捷结果(14):要事第一
  11. 妙招教你Office Word 2007文档另存为PDF文件[转]
  12. 输入一个三位数,求个位十位百位java代码
  13. Xshell6复制粘贴快捷设置
  14. 9. DICOM图像显示-DCMTK-窗宽窗位调整和源码分析
  15. 天雁计算机TY-82MS-4说明书,怎样用天雁TY-82MS-4计算器做一次和二次函数,跪谢!...
  16. pom文件报红Failure to find cn.xx:xxx:pom:3.x.x in https://maven.aliyun.com/repository/public/ was cached
  17. linux上创建loopback接口,在python中的特定接口的linux loopback接口
  18. 顶级摄影师镜头下的世界美景(组图)
  19. survival | 生存分析(1):生存曲线(上)
  20. 《Maven官方文档》Maven 开发

热门文章

  1. SQL之 CAST 和 CONVERT
  2. 如何解决C++编译错误C2280尝试引用已删除的函数【每天一个小技巧】
  3. 子库存-OU-库存组织-关系
  4. Django 可重用注册登录系统
  5. 仿微信公众号界面实现
  6. 在office中插入特殊符号方框带√
  7. 28 爬虫 - re 正则 匹配中文
  8. 微软服务器系统2018,升级微软2018 Windows10 四月正式版17134(1803)系统的多种方法...
  9. linux build文件,从源代码到可执行文件——编译全过程解析
  10. 京东关联营销怎么设置,1分钟创建关联营销