Comment puis-je passer les indicateurs d'option de Dossier.CopyHere dans PowerShell?

Je suis en train d'écrire un script automatiquement et silencieusement se déplace un tas de polices dans le Les polices d'un dossier spécial de sorte qu'ils sont disponibles, comme si vous aviez "installé" à partir de l'Explorateur (par glisser-déposer, copier, ou clic-droit et choisir "Install"). J'ai le Shell.Application partie vers le bas tout le chemin à la copie.

$FONTS = 0x14
$shell = New-Object -ComObject Shell.Application
$source = $shell.Namespace($downloaded_path)
$target = $shell.Namespace($FONTS)
$target.CopyHere($source.Items())

Cependant, certains systèmes peuvent déjà avoir les polices installées et je veux la boîte de dialogue de progression pour être caché, et invite à être accepté en silence.

Comment puis-je passer les indicateurs d'option de Dossier.CopyHere dans PowerShell?
Comment puis-je passer les indicateurs d'option de Dossier.CopyHere dans PowerShell?

Donc, je suis de l'enquête de la Dossier.CopyHere indicateurs d'option.

  • 4 Ne pas afficher une boîte de dialogue de progression
  • 16 Répondre par "Oui pour Tous" pour toute boîte de dialogue qui s'affiche.

J'espère qu'ils sont pris en charge dans ce dossier (certaines options sont ignorées par la conception). Et je pense que ce sont en décimal, droit? - Ils doivent être convertis? Cependant je passe, je vois encore les deux boîtes de dialogue. J'ai essayé

$options = 4           <-- don't expect int to work
$options = 0x4         <-- thought hexidecimal would be ok, the VB documentation shows &H4&
$options = "4"         <-- string's the thing?
$options = [byte]4     <-- no luck with bytes
$options = [variant]4  <-- this isn't even a type accelerator!

Et, si je peux obtenir une option de travail, comment puis-je obtenir à la fois le travail? Dois-je bor ensemble? Que dire de la mise en forme?

$options = 4 -bor 16

Ou puis-je les ajouter ou de les convertir en hexadécimal?

$options = "{0:X}" -f (4 + 16)
Admin/regular session PowerShell ne semble avoir aucun effet.

OriginalL'auteur Anthony Mastrean | 2012-08-28