
[英]Unable to delete files from the list using Remove-Item in PowerShell
[英]Powershell unable to delete some files with remove-item
我创建了一个PS脚本,该脚本在文件服务器上的用户文件夹中搜索项目(电影,电视节目,exe文件等)。
我已经反复测试了该脚本,它找到并删除了我想要的所有文件,除了一些.avi
文件。 我尝试过的一些文件名模式是:
*.s0*e0*.mp4
*.s0*e0*.avi
*.s0*e0*.mkv
counterstrike*
counter strike*
quicktime*.exe
quicktimeinstaller.exe
它们都可以工作,但是当我找到并尝试删除dvdrip*.avi
或*dvdrip*
(如电影)时,它会找到文件,但不会将其删除。
我在具有管理员权限的文件服务器上运行脚本。
这是脚本:
cls
set-executionpolicy remotesigned -scope CurrentUser -force
Age of file Not using at the moment!!
#$oldTime = [int]30 # 30 days
# Workin dir
Set-Location # set your working location
#hostname for Log
$hname = hostname
#For multiple drives
$path = Get-Content "pathlist.txt"
#File extensions
$skrar = Get-Content "files.txt"
$files = Get-ChildItem -Path $path -Recurse -Include $skrar # | WHERE {($_.CreationTime -le $(Get-Date).AddDays(-$oldTime))}
#For log(calcs the total size of deleted files)
$filesum = 0
#For log(calcs the total size of deleted folders)
$foldersum = 0
#check for log dir
if(!(Test-Path -Path c:\Fileserverclean_log\)){
New-Item c:\Fileserverclean_log -type directory
}
#log path
$LogHome = "c:\Fileserverclean_log"
#Log time
$logtime = Get-Date -Format "dd-MM-yyyy_HH-mm-ss"
#Log filename
$logfile = $LogHome + "del_" + $logtime + ".log"
#Log File Message
"$logtime Byrjar Hreynsun á: $hname" | Out-File $logfile -Append -Force
"----------------------------------" | Out-File $logfile -Append -Force
#File delete
foreach ($file in $files) {
$Foldersize = Get-ChildItem $file -Recurse | Measure-Object -Property length -Sum
if($file.Attributes -eq "Archive"){
$File.fullname + " stærð: " + "{0:N2}" -f ($file.length/1MB) + " MB" | Out-File $logfile -Append
$filesum += [int]($file.Length)
}
else{
$File.fullname + " stærð: " + "{0:N2}" -f ($foldersize.sum/1MB) + " MB" | Out-File $logfile -Append
$Foldersum += [int]($Foldersize.Sum)
}
# info on operation
Write-Host "Deleting files!....path $File" -ForegroundColor Red
#$file.Delete()
Remove-Item $file.Name -Force -Recurse
}
$logtimeend = Get-Date -Format "dd-MM-yyyy_HH-mm-ss"
"" | Out-File $logfile -Append -Force
"" | Out-File $logfile -Append -Force
"$logtimeend Hreynsun Lokið á: $hname" | Out-File $logfile -Append -Force
$Totalfilesize = $filesum + $foldersum
"" | Out-File $logfile -Append -Force
"" | Out-File $logfile -Append -Force
"Eytt í heild: " + "{0:N2}" -f ($Totalfilesize/1MB) + " MB" | Out-File $logfile -Append -Force
" ---------" | Out-File $logfile -Append -Force
#"Eytt í heild ($Totalfilesize/1MB)" | Out-File $logfile -Append -Force
Send-MailMessage -To xxxxx@xxxxxx.com -From cleaner@someemail.com -Subject "Cleaning log from $hname" -SmtpServer mail.something.com -Attachments $logfile
我希望我已经说清楚了。 如果没有,请告诉我。
更新。
我试过$ file.delete,这行得通。 我应该使用它而不是remove-item吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.