2

Есть ли способ переместить файлы из корзины Windows в другую папку с помощью пакетного сценария?

Фон: у меня есть папка с именем C:\Temp на моем компьютере. Я очищаю эту папку каждую неделю, используя пакетный скрипт. Я хотел бы использовать эту папку C:\Temp в качестве места по умолчанию для всех моих удаленных файлов. К сожалению, из этого поста я узнал, что вы не можете изменить место по умолчанию, в котором Windows удаляет файлы и папки. Однако мне было интересно, можно ли использовать пакетный скрипт для перемещения файлов из корзины в мою папку C:\Temp .

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

2 ответа2

1

Это можно сделать с помощью сценария PowerShell следующим образом:

$shell = New-Object -ComObject Shell.Application  
$recycleBin = $shell.Namespace(0xA) #Recycle Bin  
$recycleBin.Items() | %{Move-Item $_.Path ("C:\Temp\{0}" -f $_.Name)}   
  • Структура каталогов удаленных папок сохраняется при перемещении в папку назначения.
  • Папка назначения (в данном случае C:\Temp ) должна существовать до запуска скрипта, иначе файлы не будут перемещены.
  • Файл не будет перемещен, если файл с таким именем уже существует в месте назначения. Эту проблему можно решить, отловив ошибку и добавив Имя, чтобы сделать его уникальным.
  • Действие сценария зависит от корзины текущего пользователя.

Скрипт является модифицированной версией этого из репозитория Центра скриптов Microsoft.

0

Вы можете получить доступ к корзине по пути C:\$ Recycle.bin, чтобы использовать команду xcopy в своем скрипте. Учтите, что такая папка может быть на нескольких дисках.

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

Сценарий будет таким:

xcopy C:\$Recycle.bin C:\Temp /E /R /Y
rd /s /q C:\$Recycle.bin

Невозможно, чтобы в корзину можно было выдать "пустую" команду. Удаляя эту папку, вы фактически очищаете ее. Windows воссоздает эту папку по мере необходимости.

Вы можете прочитать справочник по командной строке в Microsoft Technet, чтобы узнать обо всех доступных параметрах для xcopy и rd.

Чтобы обратиться к замечаниям @JdeBP: Если у вас на компьютере несколько учетных записей, вы можете вместо этого использовать C:\$ Recycle.bin\USER-SID . Чтобы узнать другой SID и тот, который соответствует вашей учетной записи пользователя, используйте эту запись реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Ключ ProfileImagePath содержит имя пользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .