Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт для удаления в корзину

Ответить
Настройки темы
PowerShell - скрипт для удаления в корзину

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня есть такой через командную строку

taskkill /f /im uTorrent.exe
del C:\Users\007\Desktop\123\*.torrent
cd /d C:\Users\007\Desktop\"123"\ && rmdir /s /q .

но он удаляет все без возможности восстановить
а я хочу чтобы он удалял в Корзину (чтобы если понадобилось восстановить )

нашел вот такой скрипт
этот удаляет только папку в корзину
Скрытый текст
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::Deletedirectory('C:\Users\007\Desktop\111','OnlyErrorDialogs','SendToRecycleBin')

а этот удаляет только файл в корзину
Скрытый текст
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile('e:\test\test.txt','OnlyErrorDialogs','SendToRecycleBin')


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

Нашел вот такой он удаляет все файлы в папке и под папках остаются только пустые папки, но он удаляет без возможности восстановить
Скрытый текст
Get-ChildItem -Path C:\Users\007\Desktop\111 -Include *.* -File -Recurse | foreach { $_.Delete()}

Отправлено: 13:52, 16-05-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6648
Благодарности: 1540

Профиль | Отправить PM | Цитировать


https://superuser.com/questions/2466...he-recycle-bin

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:15, 16-05-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1227
Благодарности: 513

Профиль | Отправить PM | Цитировать


Powershell удалит в корзину файл c:\temp\temp.tmp
Код: Выделить весь код
$obj = new-object -com Shell.Application
$pth = 'c:\temp\temp.tmp'
$item = $obj.namespace(0).parsename($pth)
$item.invokeverb('delete')

-------
scio me nihil scire. Ѫ


Отправлено: 15:22, 16-05-2021 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


DJ Mogarych,
я сайтов 20-30 просмотрел готового решения не нашел
я не сильно в этом шарю так что
нахожу что подходящее но удаленный файл не появляется в корзине

YuS_2,
мне бы что бы он удалял то один файл а все файлы формата c:\temp\*.tmp

Отправлено: 16:08, 16-05-2021 | #4


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1227
Благодарности: 513

Профиль | Отправить PM | Цитировать


Цитата Diman625:
мне бы что бы он удалял то один файл а все файлы формата c:\temp\*.tmp »
изучать надо powershell...
вот функция:
Код: Выделить весь код
function remove-itemtorecyclebin {
	param(
		[Parameter(ValueFromPipeline)]
		[ValidateNotNullOrEmpty()]
		$a
    )
	process {
		foreach ($item in $a) {
			$pth = if ($item.fullname){$item.fullname} else {
				(gi $item).fullname
			}
			if (test-path -lit $pth){
				$obj = new-object -com Shell.Application
				$del = $obj.namespace(0).parsename($pth)
				$del.invokeverb('delete')
			}
		}
	}  	 
}

$path = 'c:\temp\*'

#если требуется рекурсивное удаление всех файлов:
#dir $path -file -rec -force|remove-itemtorecyclebin

#если требуется удаление файлов определенного типа:
#dir $path -incl '*.tmp' -rec -force|remove-itemtorecyclebin

#если требуется удаление только каталогов с их содержимым:
#dir $path -dir -force|remove-itemtorecyclebin

#если требуется удаление и каталогов с их содержимым, и файлов:
dir $path -force|remove-itemtorecyclebin

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 16-05-2021 в 19:39.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:26, 16-05-2021 | #5


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


YuS_2, вариант с COM: 1) требует явного освобождения ресурсов, 2) локалезависим, 3) не всегда корректно воспринимает юникод. Поэтому лучше: 1) взять адрес SHFileOperation из виртуальной памяти pwsh, 2) создать делегата для указанной функции, 3) радоваться жизни.
Также есть не очень популярный метод перемещения:
Код: Выделить весь код
Move-Item C:\somedir\somefile.docx "C:\`$RECYCLE.BIN\$([Security.Principal.WindowsIdentity]::GetCurrent().User.Value)"
Почему сиё не нравится многим? Файл может не отражаться в проводнике корзины. Тогда придётся ещё раз ударить в бубен, призвав на помощь rundll32.

Последний раз редактировалось greg zakharov, 16-05-2021 в 22:57.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:30, 16-05-2021 | #6


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6648
Благодарности: 1540

Профиль | Отправить PM | Цитировать


А какой вообще смысл удалять в корзину скриптом? Место на диске не освобождается.
Копируйте скриптом в другой каталог (что по сути то же самое), или не удаляйте вообще.
Удаляйте только то, что точно уже не нужно.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 09:23, 17-05-2021 | #7


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата DJ Mogarych:
Место на диске не освобождается.
А Кэпу какбы невдомёк, что корзина может использоваться как загашник? Поверьте, так можно.

Отправлено: 17:13, 17-05-2021 | #8


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


я его установил вчера ))) чисто из за этой функции удаления в корзину
вроде все то что я искал

Цитата YuS_2:
$path = 'c:\temp\*'
#если требуется рекурсивное удаление всех файлов:
#dir $path -file -rec -force|remove-itemtorecyclebin
#если требуется удаление файлов определенного типа:
#dir $path -incl '*.tmp' -rec -force|remove-itemtorecyclebin
#если требуется удаление только каталогов с их содержимым:
#dir $path -dir -force|remove-itemtorecyclebin
#если требуется удаление и каталогов с их содержимым, и файлов:
dir $path -force|remove-itemtorecyclebin »

но что то не понятно что на что менять ))

Отправлено: 22:44, 17-05-2021 | #9


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
А какой вообще смысл удалять в корзину скриптом? Место на диске не освобождается.
Копируйте скриптом в другой каталог (что по сути то же самое), или не удаляйте вообще.
Удаляйте только то, что точно уже не нужно. »
пользуюсь скриптом для удаления папки с торрент файлами и загрузками
что бы не удалять по 10 файлов а просто скрипт нажал и папка пуста
иногда подводит )) удаляю почти за груженые файлы или торрент файл загрузки (и приходится за нова качать)
так что корзина это промежуточный этап перед удалением))

Отправлено: 05:37, 18-05-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт для удаления в корзину

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как переделать скрипт удаления папок, на скрипт удаления файлов ufooo Скриптовые языки администрирования Windows 2 02-06-2015 12:22
VBS/WSH/JS - СКРИПТ для - прикрепление сетевого принтера, а другой для удаленного удаления прогр. morozov_s_v Скриптовые языки администрирования Windows 1 17-01-2014 06:45
Любой язык - скрипт для удаления Rubichek Скриптовые языки администрирования Windows 2 07-08-2011 14:49
Любой язык - нужен скрипт для удаления всех файлов кроме нужных для запуска Windows XP Dark Ange1 Скриптовые языки администрирования Windows 11 07-03-2010 13:34
Скрипт для удаления директорий dallas Программирование и базы данных 5 15-01-2003 19:28




 
Переход