你如何隐藏“你”这个词;GAC/版本/位置“;来自PowerShell脚本的标题?
当我通过命令行执行PowerShell脚本(.ps1)时,它会在脚本前面加上几个标题,例如:你如何隐藏“你”这个词;GAC/版本/位置“;来自PowerShell脚本的标题?,powershell,Powershell,当我通过命令行执行PowerShell脚本(.ps1)时,它会在脚本前面加上几个标题,例如: powershell.exe -File "C:\path\to\powershell.ps1" GAC Version Location --- ------- --------
powershell.exe -File "C:\path\to\powershell.ps1"
GAC Version Location
--- ------- --------
True v4.0.30319 C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089...
我不想隐藏PowerShell脚本的所有输出,因为它确实反映了一些有用的信息。我只想隐藏这些标题,这样它们就不会出现在我的屏幕上,也不会在脚本运行时与日志混在一起
如果有必要,我正在使用Windows 10内置的任何PowerShell。这可能是由于调用了
[System.Reflection.Assembly]::Load
/加载文件
/LoadFrom
/LoadWithPartialName
方法。此方法返回它们已加载的Assembly
对象。由于PowerShell从每个语句返回值,而不仅仅是显式的return
语句,所以您需要显式地忽略Assembly
对象,这样它就不会在控制台上打印出来。尽管如此,我建议您使用Add Type
PowerShell cmdlet加载程序集:
Add-Type -AssemblyName System.Windows.Forms
要隐藏LoadFile方法的返回值,有两个选项:
- 使用Out Null命令-我认为最流行的方法
- 将输出重定向到$null——这也是一种非常明显的方法
- 将值赋给$null-正常
- 将结果施放到$void-这确实是一个技巧
脚本中的某行正在输出具有这些属性的对象。这是默认情况下
写入输出
显示对象的方式。您需要确定脚本中的哪个命令输出该对象,并将其重定向或转换为字符串。请参阅以了解执行此操作的方法。[System.Reflection.Assembly]::LoadWithPartialName
->添加类型
@PetSerAl这正是我的问题。我将[system.Reflection.Assembly]::LoadWithPartialName(“system.Windows.Forms”)
更改为添加类型-AssemblyName system.Windows.Forms
,这就是我所需要的。我是PowerShell的新手,正在复制和粘贴我找到的东西,不知道这个API被弃用了。请将您的评论转化为答案,我将其标记为已接受。:)