有人能解释一下这个Poweshell脚本中$cd是如何工作的吗



我有下面的Powershell脚本,目标是获取三个文件的创建时间,如果日期与今天的日期匹配,则输出OK。

然而,我不明白$cd应该做什么

$today = (Get-Date).ToString('yyyyMMdd')
$filesd = Get-ChildItem -Path "\SERVERfile1.txt", "\SERVERfile2.txt", "\SERVERfile3.txt"| Select-Object -ExpandProperty CreationTime
foreach($cd in $filesd)
{
if($cd.ToString('yyyyMMdd') -eq $today)
{
echo  "OK"
}
else
{
echo "KO"
}
}

谢谢大家!

$cd是引用文件句柄的循环变量。

$cd.ToString('yyyyMMdd'(应为$cd.lastWriteTime.ToString('yyyyMMdd'

$FilesCD包含所有文件的文件信息。(然后选择创建时间($CD是循环浏览文件列表信息时的当前对象。

你可以做以下事情:

$filesd = Get-ChildItem -Path "\SERVERfile1.txt", "\SERVERfile2.txt", "\SERVERfile3.txt"
$Today = Get-Date
foreach($cd in $filesd)
{
if($cd.CreationTime.date -eq $Today.date)
{
Write-Host "OK"
}
else
{
Write-Host "OK"
}
}

我选择不只是选择创造时间。CreationTime属性是DateTime类型,因此您可以使用返回00:00日期的Date属性所以要知道你比较的是日期,而不是短信。

最新更新