批处理之家's Archiver

iii888iii 发表于 2022-4-6 22:15

PowerShell逻辑运算后执行程序

链接:[url=https://pan.baidu.com/s/1szKC6g4IO-1QxbT8tatYXg]https://pan.baidu.com/s/1szKC6g4IO-1QxbT8tatYXg[/url]
提取码:chcu

请高手帮忙弄个代码,由于是虚拟机的系统,之前的bat代码运行有时候会出问题.  弄个ps的试一试效果.
感谢

条件:
d:\temp\ok .只有一个 *.xlsx文件
(子文件夹有文件,忽略)

案例为:1-2中文英文_中文英文字符_2022年03月26日13时00分_中文英文字符a_中文英文字符b_1024582_22034_72[忽略符号内内容].xlsx



                          z p k
1,提取,all_=zpk= 1-2-1   这个文件夹名称.提取z,p,k,3个值

逻辑:

如果,以下条件 成立,执行对应程序.

模式:a
z为最大值且z>1,且z>p   且k=0        执行c:\temp\210.exe程序  并结束代码,否则继续执行
延时2秒

z为最大值且z>1,且z>p   且k=1        执行c:\temp\211.exe程序  并结束代码,否则继续执行
延时2秒

p为最大值且z>=1,且z>K   且k=0       执行c:\temp\120.exe程序  并结束代码,否则继续执行
延时2秒

k为最大值且z=0,且k>=2   且p=0       执行c:\temp\002.exe程序  并结束代码,否则继续执行
延时2秒

k为最大值且z=0,且k>p   且p>=1       执行c:\temp\012.exe程序  并结束代码,否则继续执行
延时2秒

p为最大值且z=1, 且k>=1             执行c:\temp\121.exe程序  并结束代码,否则继续执行
延时2秒

k为最大值且z=1,且k=p              执行c:\temp\122.exe程序  并结束代码,否则继续执行

exit

idwma 发表于 2022-4-7 16:28

[code]$a='d:\temp\ok'
if($(gi "$a\*.xlsx").count -lt 1 -and $(gi "$a\all_=zpk=*").name -match '\d+-\d+-\d+'){
    $zpk=$matches[0] -split '-'
    $z=$zpk[0]
    $p=$zpk[1]
    $k=$zpk[2]
    $zm=$($zpk|measure -max).maximum
    if($z -eq $zm -and $z -gt 1 -and $z -gt $p -and $k -eq 0){start 'c:\temp\210.exe';exit}
    sleep 2
#以此类推可以自己加
# -gt -ge -lt -le -eq
#  >  >=   <   <=  =  
}
[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.