问题描述
因此,我正在使用类似于以下脚本的 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 (将#修改为@)