win10天干五合工具

@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 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 天干合化状态:无合化(默认),合而不化,合化成功
set tianganhestate=无合化
rem 保存地支信息
echo !nianzhi!>%temp%\dizhi.txt
echo !yuezhi!>>%temp%\dizhi.txt
echo !rizhi!>>%temp%\dizhi.txt
echo !shizhi!>>%temp%\dizhi.txt
rem 打印年月日时干支
echo 年干=!niangan!  年支=!nianzhi!  月干=!yuegan!  月支=!yuezhi!  日干=!rigan!  日支=!rizhi!  时干=!shigan!  时支=!shizhi!
echo.
rem 年月日时临近天干两两组合并保存信息
echo !niangan!!yuegan!>%temp%\bazi.txt
echo !yuegan!!rigan!>>%temp%\bazi.txt
echo !rigan!!shigan!>>%temp%\bazi.txt
rem 打印输入的八字的天干组合情况
echo 年月干组合=!niangan!!yuegan! 月日干组合=!yuegan!!rigan! 日时干组合=!rigan!!shigan!
echo.
rem 按照如下格式生成解析字典,位数不足和不存在的补无,格式:
rem 天干排列1 天干排列2 合化成的阳天干的月份+阳天干(123+4) 合化成的阴天干的月份+阴天干(12+3) 合化天干1的长生帝旺临官 合化天干2的长生帝旺临官
rem 月柱地支有无临近地支冲克 合化成的天干贴近冲克的天干     
if not exist %temp%\bazi2.txt (
echo 甲己 己甲 辰戌无戊 丑未己 亥卯寅 无 无 甲乙>%temp%\bazi2.txt
echo 乙庚 庚乙 巳申丑庚 酉无辛 寅卯无 无 有 丙丁>>%temp%\bazi2.txt
echo 丙辛 辛丙 申辰亥壬 子无癸 寅午巳 申酉无 有 戊己>>%temp%\bazi2.txt
echo 丁壬 壬丁 亥未寅甲 卯无乙 巳午无 申亥子 有 庚辛>>%temp%\bazi2.txt
echo 戊癸 癸戊 寅戌巳丙 午无丁 无 亥子无 有 壬癸>>%temp%\bazi2.txt
)
rem 冲克月柱地支的地支
if not exist %temp%\dizhike.txt (
echo 寅 申>%temp%\dizhike.txt
echo 卯 酉>>%temp%\dizhike.txt
echo 巳 亥>>%temp%\dizhike.txt
echo 午 子>>%temp%\dizhike.txt
echo 申 寅>>%temp%\dizhike.txt
echo 酉 卯>>%temp%\dizhike.txt
echo 亥 巳>>%temp%\dizhike.txt
echo 子 午>>%temp%\dizhike.txt
echo 辰 戌>>%temp%\dizhike.txt
echo 戌 辰>>%temp%\dizhike.txt
echo 丑 未>>%temp%\dizhike.txt
echo 未 丑>>%temp%\dizhike.txt
)
echo 天干合化的情况:
echo.
for /f "tokens=*" %%a in (%temp%\bazi.txt) do (
rem 读取天干组合
set tianganzuhe=%%a
for /f "tokens=1,2,3,4,5,6,7,8* delims= " %%b in (%temp%\bazi2.txt) do (
rem 读取解析字典每一列
set tianganhe1=%%b
set tianganhe2=%%c
set tianganheyue1=%%d
set tianganheyue2=%%e
set tianganhe1dizhi=%%f
set tianganhe2dizhi=%%g
set tianganheyuezhi=%%h
set tianganheke=%%i
rem 取合化成的月份和阳干信息
set yue11=!tianganheyue1:~0,1!
set yue12=!tianganheyue1:~1,1!
set yue13=!tianganheyue1:~2,1!
set yue14=!tianganheyue1:~3,1!
rem 取合化成的月份和阴干信息
set yue21=!tianganheyue2:~0,1!
set yue22=!tianganheyue2:~1,1!
set yue23=!tianganheyue2:~2,1!
rem 取解析字典第一列第一个天干的长生帝旺临官,不是俱全
set nodizhi11=!tianganhe1dizhi:~0,1!
set nodizhi12=!tianganhe1dizhi:~1,1!
set nodizhi13=!tianganhe1dizhi:~2,1!
rem 取解析字典第一列第二个天干的长生帝旺临官,不是俱全
if "!tianganhe2dizhi!" equ "无" (
set nodizhi21=
set nodizhi22=
set nodizhi23=
)
if not "!tianganhe2dizhi!" equ "无" (
set nodizhi21=!tianganhe2dizhi:~0,1!
set nodizhi22=!tianganhe2dizhi:~1,1!
set nodizhi23=!tianganhe2dizhi:~2,1!
)
rem 如果满足解析字典中天干五合的其中一种
set istianganwuhe=否
if "!tianganzuhe!" equ "!tianganhe1!" (
set istianganwuhe=是
) else (
if "!tianganzuhe!" equ "!tianganhe2!" (
set istianganwuhe=是
)
)
if "!istianganwuhe!" equ "是" (
rem 根据月份判断合化成的是阳干还是阴干
set tianganhewuxing=
set yueflag=否
if "!yuezhi!" equ "!yue11!" (
set tianganhewuxing=!yue14!
set yueflag=是
)
if "!yuezhi!" equ "!yue12!" (
set tianganhewuxing=!yue14!
set yueflag=是
)
if "!yuezhi!" equ "!yue13!" (
set tianganhewuxing=!yue14!
set yueflag=是
)
if "!yuezhi!" equ "!yue21!" (
set tianganhewuxing=!yue23!
set yueflag=是
)
if "!yuezhi!" equ "!yue22!" (
set tianganhewuxing=!yue23!
set yueflag=是
)
set tmpyue1=!tianganheyue1:~0,3!
set tmpyue2=!tianganheyue2:~0,2!
echo 月令=!yuezhi! !tianganzuhe!合化月!tmpyue1:无=!!tmpyue2:无=!=!yueflag!
echo.
if "!yueflag!" equ "是" (
rem 判断地支有无长生帝旺临官,不是俱全
set nodizhiflag=是
for /f "tokens=*" %%k in (%temp%\dizhi.txt) do (
set shengchendizhi=%%k
if "!shengchendizhi!" equ "!nodizhi11!" (
set nodizhiflag=否
)
if "!shengchendizhi!" equ "!nodizhi12!" (
set nodizhiflag=否
)
if "!shengchendizhi!" equ "!nodizhi13!" (
set nodizhiflag=否
)
if "!shengchendizhi!" equ "!nodizhi21!" (
set nodizhiflag=否
)
if "!shengchendizhi!" equ "!nodizhi22!" (
set nodizhiflag=否
)
if "!shengchendizhi!" equ "!nodizhi23!" (
set nodizhiflag=否
)
)
echo 天干!tianganzuhe!没有长生帝旺临官地支!tianganhe1dizhi:无=!!tianganhe2dizhi:无=!=!nodizhiflag!
echo.
if "!nodizhiflag!" equ "是" (
rem 判断月令有无冲的情况
set noyuezhiflag=是
if not "!tianganheyuezhi!" equ "无" (
for /f "tokens=1,2* delims= " %%l in (%temp%\dizhike.txt) do (
set zhudizhi=%%l
set kewodizhi=%%m
if "!yuezhi!" equ "!zhudizhi!" (
if "!nianzhi!" equ "!kewodizhi!" (
set noyuezhiflag=否
)
if "!rizhi!" equ "!kewodizhi!" (
set noyuezhiflag=否
)
echo 月令=!yuezhi! !tianganzuhe!合化月柱地支!yuezhi!没有临近地支!kewodizhi!冲克=!noyuezhiflag!
echo.
)
)
)
if "!noyuezhiflag!" equ "是" (

rem 判断化干贴干克,年月干组合看日干,月日干组合看年时,日时干组合看月
set notianganxingke=是
set quritiangan=!niangan!!yuegan!
set qunianshitiangan=!yuegan!!rigan!
set quyuetiangan=!rigan!!shigan!
set tianganheke1=!tianganheke:~0,1!
set tianganheke2=!tianganheke:~1,1!
rem 判断是哪两柱组合
if "!tianganzuhe!" equ "!quritiangan!" (
if "!rigan!" equ "!tianganheke1!" (
set notianganxingke=否
)
if "!rigan!" equ "!tianganheke2!" (
set notianganxingke=否
)
)
if "!tianganzuhe!" equ "!qunianshitiangan!" (
if "!niangan!" equ "!tianganheke1!" (
set notianganxingke=否
)
if "!niangan!" equ "!tianganheke2!" (
set notianganxingke=否
)
if "!shigan!" equ "!tianganheke1!" (
set notianganxingke=否
)
if "!shigan!" equ "!tianganheke2!" (
set notianganxingke=否
)
)
if "!tianganzuhe!" equ "!quyuetiangan!" (
if "!yuegan!" equ "!tianganheke1!" (
set notianganxingke=否
)
if "!yuegan!" equ "!tianganheke2!" (
set notianganxingke=否
)
)
echo !tianganzuhe!的化干!tianganhewuxing!没有!tianganheke!相克:!notianganxingke!
echo.
if "!notianganxingke!" equ "是" (
set tianganhestate=合化成功
echo !tianganzuhe!合化!tianganhewuxing!
echo.
echo 天干合化结果=!tianganzuhe!合化成功
echo.
)
if "!notianganxingke!" equ "否" (
set tianganhestate=合而不化
echo 天干合化结果=合而不化
echo.
)
)
if "!noyuezhiflag!" equ "否" (
set tianganhestate=合而不化
echo 天干合化结果=!tianganzuhe!合而不化
echo.
)
)
if "!nodizhiflag!" equ "否" (
set tianganhestate=合而不化
echo 天干合化结果=!tianganzuhe!合而不化
echo.
)
)
if "!yueflag!" equ "否" (
set tianganhestate=合而不化
echo 天干合化结果=!tianganzuhe!合而不化
echo.
)
)
)
)
if "无合化" equ "!tianganhestate!" (
echo 天干合化结果=!tianganhestate!
echo.
)
goto encode

使用方法:用文本编辑器保存为,天干五合.bat,双击运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

humors221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值