J'écris une classe C# qui exécute un processus (REG) pour exporter les clés de registre. REG exige que vous spécifiez un nom de fichier à exporter mais je préfère que la sortie de REG soit dirigée vers la sortie standard afin que je puisse le capturer directement dans mon code C# (en utilisant Process.StandardOutput). Existe-t-il un moyen dans PowerShell de spécifier la sortie standard comme nom de fichier?PowerShell: comment utiliser la sortie standard à la place du nom de fichier
Répondre
Si vous devez utiliser le programme REG (plutôt que d'utiliser PowerShell pour interroger/vider le registre - ou même simplement le faire dans le programme C# lui-même), le mieux que vous obtiendrez est probablement de lui permettre de vider dans un fichier temporaire, puis conduit le contenu du fichier à sortir standard et capturer dans votre programme C# de cette façon:
$guid = [Guid]::NewGuid().ToString("N")
REG EXPORT HKCU\Software\Microsoft\Windows "$env:temp\$guid" | Out-Null
Get-Content "$env:temp\$guid"
Remove-Item "$env:temp\$guid"
Si vous ne saviez pas: l'aide PowerShell, vous pouvez naviguer dans le registre comme même si cela faisait partie du système de fichiers. Peut-être que cela est utile à d'autres égards?
cd HKCU:\Software\Microsoft\Windows
dir
utilisez simplement « CONOUT $ » comme nom de fichier (comme pojnted dans les commentaires, cela ne fonctionne que sous Windows XP):
PS C:\> reg export HKLM\SOFTWARE\FileZilla 'CONOUT$'
■W i n d o w s R e g i s t r y E d i t o r V e r s i o n 5 . 0 0
[ H K E Y _ L O C A L _ M A C H I N E \ S O F T W A R E \ F i l e Z i l l a ]
" I n s t a l l _ D i r " = " C : \ \ P r o g r a m F i l e s \ \ F i l e Z i l l a "
" R u n i n S e c u r e M o d e " = " 0 "
" U s e R e g i s t r y " = " 0 "
" L a n g u a g e " = " E n g l i s h "
Il y a quelques problèmes de codage UNICODE dans la sortie présentés ici , mais vous devriez être capable de gérer cela dans le tampon lorsque vous l'analyserez.
- 1. Perl: ajout du nom de fichier d'entrée à la sortie du nom de fichier
- 2. Comment colorier du texte dans la sortie standard de Perl?
- 3. C# - comment fermer les flux d'entrée et de sortie standard à la sortie du processus?
- 4. Vérifier la copie du fichier dans powershell
- 5. Comment faire pour passer la sortie standard de bash?
- 6. Utiliser machiniste à la place des appareils
- 7. Personnalisez le menu de sortie numérique du plug-in JQuery EasySlider pour utiliser la chaîne de texte à la place?
- 8. Sortie Powershell
- 9. Powershell largeur colonne de sortie
- 10. lire le contenu du fichier texte nad affichage sur la sortie standard throgh fichier batch
- 11. afficher la sortie du fichier mat
- 12. Powershell: Sortie de l'objet [] vers un fichier
- 13. comment utiliser erb le fichier de sortie après la liaison
- 14. Que devrais-je utiliser à la place de sscanf?
- 15. Utiliser le nom de fichier pour GET data et rendre la sortie de la page PHP en extension JPG?
- 16. Commandes standard WPF - Où est la sortie?
- 17. PowerShell 1 ne capture pas la sortie du fichier de commandes avec le té
- 18. MSBuild: Comment remplacer le nom de fichier de sortie pour qu'il soit différent du nom d'assembly?
- 19. Comment puis-je utiliser Castle Windsor à la place?
- 20. Impossible de capturer la sortie standard du processus à l'aide de Boost.Process
- 21. Rediriger la sortie standard vers syslog
- 22. Redirige la sortie standard efficacement dans .NET
- 23. rediriger la sortie du fichier à trois thread en cours
- 24. Comment faire pour que le nom du fichier de sortie corresponde au nom du dossier
- 25. que devrais-je utiliser à la place de Directory.SetCurrentDirecory?
- 26. PowerShell: supprimer la sortie Write-Progress
- 27. Largeur de la sortie PowerShell dans la fenêtre de sortie de Visual Studio
- 28. Utilisation du courrier électronique à la place du nom d'utilisateur dans le composant Auth de CakePHP
- 29. Comment utiliser PowerShell pour supprimer de l'espace à la fin d'une ligne dans un fichier texte
- 30. Empêche Ghostscript d'écrire des erreurs sur la sortie standard
Astuce intéressante, mais cela n'a pas fonctionné pour Win7 ou Server2003 (tout ce que j'ai à tester). Je reçois cette erreur ... ERREUR: Impossible d'écrire dans le fichier. Il peut y avoir une erreur de disque ou de système de fichiers. – JasonMArcher
Aussi ne fonctionne pas pour moi. Je reçois le même message que ci-dessus (ERREUR: impossible d'écrire dans le fichier, il peut y avoir une erreur de disque ou de système de fichiers). – Trevor
Lorsque j'ai testé sur XP (SP3), il semble bien fonctionner. Échoue aussi pour moi sur Server2003. On dirait que Reg a été mis à jour, ce qui a brisé le tour. – zdan