小编Mir*_*rek的帖子

如何在PowerShell中解析日期?

我编写了一个删除超过五天的备份的脚本.我通过目录的名称而不是实际日期来检查它.

如何将目录名称解析为日期以进行比较?

我的部分脚本:

...

foreach ($myDir in $myDirs)
{
  $dirName=[datetime]::Parse($myDir.Name)
  $dirName= '{0:dd-MM-yyyy}' -f $dirName
  if ($dirName -le "$myDate")
  {
        remove-item $myPath\$dirName -recurse
  }
}
...
Run Code Online (Sandbox Code Playgroud)

也许我做错了什么,因为它仍然没有删除上个月的目录.

整个脚本与Akim的建议如下:

Function RemoveOldBackup([string]$myPath)
{

  $myDirs = Get-ChildItem $myPath

  if (Test-Path $myPath)
  {
    foreach ($myDir in $myDirs)
    {
      #variable for directory date
      [datetime]$dirDate = New-Object DateTime

      #check that directory name could be parsed to DateTime
      if([datetime]::TryParse($myDir.Name, [ref]$dirDate))
      {
            #check that directory is 5 or more day old
            if (([DateTime]::Today - $dirDate).TotalDays -ge 5)
            {
                  remove-item …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

powershell ×1

powershell-2.0 ×1