foreach 循环中的 where 语句,比较日期

MFR1988

尝试导入包含姓名、电子邮件、终止日期、停止日期的用户列表,并首先检查停止日期或终止日期是否已过。

尝试添加 [datetime] 并使用 get-date $user.'stop date' 但没有任何运气。它似乎可以使用下面的代码而没有相同的问题,或者我得到相同的错误,但它确实检查并写出其中一个值更大:

$StopFolder = Get-ChildItem C:\test\123\*.csv |sort LastWriteTime -descending|select -first 1
$Stoplist = Import-Csv $StopFolder -delimiter ';'

$CurrentDate = Get-Date
foreach($Date in $Stoplist){
if($CurrentDate -eq (get-date $Date.'Stop Date')){write-host Equal}

if($CurrentDate -gt (get-date $Date.'Stop Date')){write-host Greater}

if($CurrentDate -lt (get-date $Date.'Stop Date')){write-host Less}}

但同样的似乎不适用于下面,也无法真正弄清楚原因。我想我需要将它转换为日期,但不确定为什么它在上面而不是下面起作用,也不知道如果 get-date 不起作用,如何准确地转换它。

$StopFolder = Get-ChildItem C:\test\123\*.csv |sort LastWriteTime -descending|select -first 1
$Stoplist = Import-Csv $StopFolder -delimiter ';'
$CurrentDate = Get-Date

foreach($User in $Stoplist|where($_.'stop date' -lt $CurrentDate)){

try{
    $Usermail = $User.'e-mail address'
    $Username = get-aduser -Filter "EmailAddress -eq '$Usermail'" -properties Enabled


        if($Username.enabled){
        echo $Username 'still exists and is NOT disabled' >> C:\NotDisabled.txt
        }

        if($Username.enabled -eq $false){
        echo $Username 'still exists and is disabled' >> C:\NotDeleted.txt 
        }
}
catch{continue}
}

预期结果是仅在当前用户停止日期小于当前日期时才启动循环。目前没有任何反应,删除 where 部分,其余部分似乎运行良好。

任何帮助深表感谢。

编辑:CSV 日期是这样的:

停止日期

01-02-2023
21-09-2019
21-01-2019
01-01-2019
01-01-2019

编辑:错误不仅在逻辑内,而且是错字:| where需要花括号>| where {}不是括号。


'stop date'以下日期创建日期

(get-date -date $_.'stop date')

在一行中:

foreach($User in $Stoplist|where{(get-date -date $_.'stop date') -lt $CurrentDate}){...}

$Stoplist|where{(get-date -date $_.'stop date') -lt $CurrentDate}是一个单元,可以封装在括号中:

foreach($User in ($Stoplist|where{(get-date -date $_.'stop date') -lt $CurrentDate}) ){...}

但是$User in $Stoplist管道周围没有括号|只指最后一个对象$Stoplist

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在FOREACH循环中的PHP IF语句

来自分类Dev

PHP - 在 foreach 循环中向 SQL 语句添加新的 WHERE 子句

来自分类Dev

foreach循环中的if语句c#

来自分类Dev

在foreach循环中将日期分组

来自分类Dev

在foreach循环中跳过相同的日期

来自分类Dev

在 foreach 循环中计算日期

来自分类Dev

在foreach循环中对Entity Framework DbContext使用using语句

来自分类Dev

PHP:ForEach循环中的IF语句适用于后续条目

来自分类Dev

(反应)JSX中的foreach循环中的if-else语句

来自分类Dev

PHP - 检查 foreach 循环中的日期范围/可用性

来自分类Dev

forEach循环中的setTimeout

来自分类Dev

foreach循环中的条件

来自分类Dev

在foreach()循环中中断if

来自分类Dev

在foreach循环中的mail()

来自分类Dev

foreach循环中的数组

来自分类Dev

while循环中的foreach循环

来自分类Dev

正确使用foreach循环中的foreach循环

来自分类Dev

正确使用foreach循环中的foreach循环

来自分类Dev

在foreach循环中的if语句中的while循环...运行不正常

来自分类Dev

如何使用where语句比较日期?

来自分类Dev

带where子句的foreach循环

来自分类Dev

在foreach循环中返回Array

来自分类Dev

在foreach循环中创建任务

来自分类Dev

在foreach循环中修改集合

来自分类Dev

在foreach dopar循环中绘制

来自分类Dev

在forEach循环中设置属性

来自分类Dev

foreach:for循环中的grep backtick

来自分类Dev

在foreach循环中投放问题

来自分类Dev

Bootstrap在foreach循环中崩溃