我在写一个运行进程(REG)的C#类来导出注册表项。 REG要求你指定一个文件名来导出,但我宁愿让REG的输出指向标准输出,这样我就可以直接在我的C#代码中捕获它(使用Process.StandardOutput)。 PowerShell中有没有将标准输出指定为文件名的方法?PowerShell:如何使用标准输出代替文件名
3
A
回答
4
如果您必须使用REG程序(而不是使用PowerShell来查询/转储注册表 - 或者甚至只是在C#程序本身中执行它),可能最好的办法是让它转储出到一个临时文件,然后通过管道将文件和内容返回到标准输出捕捉它在你的C#程序的方法:
$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"
如果你不知道:使用PowerShell,您可以浏览注册表,尽管它是文件系统的一部分。也许这对其他方面有帮助?
cd HKCU:\Software\Microsoft\Windows
dir
1
只要使用“CONOUT $”作为文件名(如在评论pojnted出来,在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 "
这里有显示在输出部分UNICODE编码问题,但是当你解析它时你应该能够在缓冲区中处理它。
相关问题
- 1. 如何获取作为标准输入/标准输出的文件的名称?
- 2. 打印文件名到标准输出
- 3. PowerShell的保存标准输出和显示标准输出
- 4. bash,如何标准输出到文件
- 5. Python使用标准输出和文件输入写入文件
- 6. 如何使用python打印PDF文件到标准输出?
- 7. 代替代替使用PowerShell
- 8. 输出文件到标准输入
- 9. 使用Ansible docker_container,我该如何显示标准? (标准输出)
- 10. 替代标准::需要读取文件
- 11. 如果没有提供文件名回退到标准输出
- 12. 如何回显标准输出到标准输出
- 13. 如何从C#读取PowerShell脚本标准输出和标准错误#
- 14. Powershell将标准输出重定向到标准错误
- 15. 如何都打印到标准输出和文件用C
- 16. 批重定向输出标准错误到文件和管道输出标准输出到文件
- 17. 如何使用Python将标准输入/标准输出传递给Perl脚本
- 18. 如何把投入和使用标准输入和标准输出
- 19. 命名管道,chaning标准输入,在标准输出叉()
- 20. 写入输出Powershell的被炒到标准输出
- 21. Windows API彩色输出到Powershell/cmd.exe中的标准输出
- 22. 使用输出运算符在powershell中命名.txt文件
- 23. 在PowerShell输出文件中使用上个月的名称
- 24. 如何使log4j的不标准输出打印,线程名
- 25. 来自标准输入输出文件NSFileManager的文件名objective-c
- 26. Nmake标准输出到文件
- 27. 标准输出到Python中的文件
- 28. 标准输出重定向到文件
- 29. Git:整个文件到标准输出
- 30. 替代使用PHP的标准MySQL
有趣的提示,但它没有为我在Win7或Server2003(我有可用测试)工作。我收到此错误...错误:无法写入文件。可能有磁盘或文件系统错误。 – JasonMArcher 2010-10-08 18:50:10
也不适合我。我收到了与上面相同的消息(错误:无法写入文件,可能是磁盘或文件系统错误)。 – Trevor 2010-10-08 21:00:40
当我在XP(SP3)上测试时,它似乎工作正常。在Server2003上也失败了。看起来Reg已经更新了,这打破了这个诀窍。 – zdan 2010-10-12 18:19:45