PDA

Показать полную графическую версию : [решено] Удаление из корзины конкретного файла


Carrio
28-09-2024, 19:51
С помощью этой строки кода можно вывести все элементы из всех корзин текущего пользователя в виде Исходное расположение и Имя:
(New-Object -ComObject Shell.Application).NameSpace(0x0a).Items() | select @{n="OriginalLocation"; e={$_.ExtendedProperty("{9B174B33-40FF-11D2-A27E-00C04FC30871} 2")}}, Name

Подскажите, как допилить эту строку, чтобы вместо вывода списка всех файлов корзин просто удалялся определённый из них, который подпадает под условие его исходного расположения вместе с именем, определённый полный исходный путь в общем).

Если бы в качестве условия было только лишь название файла без пути, то всё решалось бы таки образом:
(New-Object -ComObject Shell.Application).NameSpace(0x0a).Items() | Where-Object {$_.Name -like 'имя_файла.расширение'} | Remove-Item

DJ Mogarych
29-09-2024, 10:33
$file = 'C:\Users\User\Downloads\file — копия (3).txt'

(New-Object -ComObject Shell.Application).NameSpace(0x0a).Items() |
? { "$($_.ExtendedProperty("{9B174B33-40FF-11D2-A27E-00C04FC30871} 2"))\$($_.name)" -eq $file } |del

Carrio
29-09-2024, 13:43
DJ Mogarych
Прекрасно, работает, спасибо! Только конструкция '{9B174B33-40FF-11D2-A27E-00C04FC30871} 2' должна быть в одинарных кавычках, иначе весь код дальше экранируется.

Но лично для меня предпочтительнее вообще такая запись:
(New-Object -ComObject Shell.Application).NameSpace(0x0a).Items() | ? {$($_.ExtendedProperty('{9B174B33-40FF-11D2-A27E-00C04FC30871} 2'))+'\'+$($_.Name) -like $file} | Remove-Item




© OSzone.net 2001-2012