PowerShellでファイルやフォルダをごみ箱に捨てる。(XP)
XPまでは、ごみ箱へのCopyHere()は、非同期なので、元がなくなるのを待ち合わせます。
remove.ps1 files...
$Shell=new-object -com shell.application;
$Folder=$Shell.NameSpace(10);
foreach($arg in $args){
$FileName=[System.IO.Path]::GetFileName($arg);
$sFolder=$Shell.NameSpace([System.IO.Path]::GetFullPath($arg+"\.."));
if(-not $sFolder){
write-output ("Folder Not Found. - " + $arg);
break;
}
$sFolderItem=$sFolder.ParseName($FileName);
if($sFolderItem){
$Folder.CopyHere($sFolderItem);
while($sFolder.ParseName($FileName)){Start-sleep -milliseconds 1000;}
}else{
write-output ("File Not Found. - " + $arg);
break;
}
}