Batch script déplacer des fichiers depuis Windows Corbeille

Existe-t-il un moyen de déplacer des fichiers de la Corbeille de Windows vers un autre dossier en utilisant un script de lot?

Contexte: J'ai un dossier nommé C:\Temp sur mon ordinateur. Je nettoie ce dossier chaque semaine en utilisant un script par lots. J'aimerais utiliser ce dossier C:\Temp comme lieu par défaut pour tous mes fichiers supprimés. Malheureusement, par cette publication , j'ai appris que vous ne pouvez pas modifier l'endroit par défaut où Windows supprime les fichiers et les dossiers. Cependant, je me demandais s'il est possible d'utiliser un script batch pour déplacer des fichiers hors de la Corbeille et dans mon dossier C:\Temp .

Remarque: S'il existe une autre méthode, peut-être celle qui n'utilise pas un fichier batch, je suis également ouvert.

    Cela pourrait être fait à l'aide d'un script PowerShell comme suit:

     $shell = New-Object -ComObject Shell.Application $recycleBin = $shell.Namespace(0xA) #Recycle Bin $recycleBin.Items() | %{Move-Item $_.Path ("C:\Temp\{0}" -f $_.Name)} 
    • La structure de répertoires des dossiers supprimés est maintenue lors du déplacement vers le dossier de destination.
    • Le dossier de destination ( C:\Temp dans ce cas) doit exister avant que le script ne soit exécuté ou les fichiers ne seront pas déplacés.
    • Un fichier ne sera pas déplacé si un fichier du même nom existe déjà dans l'emplacement de destination. Cela pourrait être résolu en attrapant l'erreur et en ajoutant le Nom avec quelque chose pour le rendre unique.
    • L'action du script est spécifique à la Corbeille de l'utilisateur actuel.

    Script est une version modifiée de celui- ci à partir du dépôt Microsoft Script Center.

    Vous pouvez accéder à la Corbeille dans le chemin C: \ $ Recycle.bin afin que vous puissiez utiliser la commande xcopy dans votre script. Prenez en compte que vous pouvez avoir un dossier comme celui-ci dans plus d'un lecteur.

    Je copierais tous les fichiers et dossiers de la Corbeille et, dans la ligne suivante, je supprimerais tout son contenu.

    Le script sera comme ceci:

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

    Il n'y a aucune manière pour que la Corbeille puisse émettre une commande "vide". En supprimant ce dossier, vous le vidiez effectivement. Windows recrée ce dossier au besoin.

    Vous pouvez lire la référence de la ligne de commande dans Technet de Microsoft pour connaître tous les paramètres disponibles pour xcopy et rd .

    Pour répondre aux remarques de @JdeBP: si vous avez plus d'un compte d'utilisateur dans votre ordinateur, vous pouvez utiliser C: \ $ Recycle.bin \ USER-SID à la place. Pour connaître les différents SID et ceux qui correspondent à votre compte utilisateur, utilisez cette entrée de registre.

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

    La clé ProfileImagePath contient le nom d'utilisateur.