【发布时间】:2014-01-14 02:50:40
【问题描述】:
我将自定义代码部署到数以千计的计算机上,并且已经能够让返回代码为我必须用来推出代码的工具中的一两个对象正确运行。但我正在寻找一种设置文件验证器的方法 - 因为开发人员不会始终使用版本编号,所以我能够使用下面的代码来检查每个对象的日期戳。
代码:
$foo1= Get-ChildItem "C:\path\file1.exe" | Where-Object {$_.LastWriteTime -gt "11/1/2013"} | Out-String
$foo2= Get-ChildItem "C:\path\file2.exe" | Where-Object {$_.LastWriteTime -gt "9/10/2013"} | Out-String
$foo3= Get-ChildItem "C:\path\file3.exe" | Where-Object {$_.LastWriteTime -gt "4/23/2013"} | Out-String
$foo4= Get-ChildItem "C:\path\file4.exe" | Where-Object {$_.LastWriteTime -gt "12/17/2012"} | Out-String
上述方法有效,但会显示对象名称和上次写入时间。我可以用这段代码编写退出代码:
if($foo1){Write-Host '0'
}else{
Write-Host '5'
Exit 5
}
有没有一种方法可以说明 foo1 是否存在(即不是 $null),然后将其读取为 0,如果它为 null,则将其读取为 1,然后声明 $foochecksum = $foo1 + $foo2 + $foo3 + $foo4 并执行一次上面引用的 If Else 以将退出代码写入我的部署工具?
从功能上讲,我正在寻找一种检查多个文件日期/时间戳的方法,然后如果一切正常,则将一个 0 传递给 If/Else 语句,该语句将向我的部署工具写入通过或失败。
如果需要,我可以使用多个 if/else,但需要检查 40 个文件之类的内容,并且不希望有 40 个不同的 IF/Else 语句。
我也希望有一些可以在 PS V2 和 V3 中运行的东西,因为我在产品中混合了 2003 和 2008 的服务器。
谢谢,
德怀特
【问题讨论】:
标签: powershell