微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Remove-Item -Force on NULL Filewatcher 文件删除了我服务器上的 1000 个文件,这是 Powershell 错误吗?还是只是我的错误代码?

如何解决Remove-Item -Force on NULL Filewatcher 文件删除了我服务器上的 1000 个文件,这是 Powershell 错误吗?还是只是我的错误代码?

因此,我正在使用类似于以下脚本的 FileSystemWatcher 开发脚本:https://powershell.one/tricks/filesystem/filesystemwatcher

我只使用 Created 事件。

然后我对“创建”的文件运行以下代码

当我在已被另一段代码删除文件上运行此代码时,我遇到了一个非常意外的错误。所以基本上,“Remove-WrongFileType”函数收到了一个文件,什么也没有。然后它开始删除我服务器上的大量不同文件

我从 C:\ 运行我的脚本,显然我将其授予了高权限。但是,我发现当 $Path 为 Null 时,脚本只是找到要删除文件,这真的很奇怪。我已经设法在我的代码解决了这个问题,首先检查文件的路径是否会导致某些东西,但是我想了解是什么导致脚本如此严重崩溃,以及为什么 Get-ChildItem 在 $Path 时找到文件一个文件。我想知道这是否可能是 Powershell 中的某种错误? (很可能不是..但我想知道..)

Function Remove-WrongFileType {
    Param (
    [string]$Path
    )

$Files = Get-ChildItem -Path $Path -Force -Recurse

foreach($file in $Files) {
    if(-not (Assert-LegalFileType -File $file.FullName){
        Remove-Item -Path $file.Fullname -Force
        Add-ToLog -logString “File $file was removed because of illegal filetype”
        }
    }
}

Function Assert-LegalFileType {
    Param (
    [string]$File
    )

    if(Test-Path -Path $File -PathType Container){
        return $true
    }

    $filetocheck = Get-Item -Path $File
    $ExtensionOfFile = $filetocheck.Extension

    foreach($type in $AllowedFiles){
        if($ExtensionOfFile -match $type) {
            return $true
        }
    }
}



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。