Powershell小技巧之屏蔽输出结果

从PS命令返回的任何结果后,对于任何不重要的结果将其屏蔽是非常重要的。

我们有很多方法去实现它,同时下面介绍两个比较特别的方法。注意下面两行尝试在C盘创建一个新的文件夹:。New-Item将输出这个文件夹的对象,但是当你在创建文件夹时你可能会想屏蔽创建的结果:

$null = New-Item -Path c:\newfolderA -ItemType Directory

New-Item -Path c:\newfolderB -ItemType Directory | Out-Null

那么哪个途径更好?肯定是第一个。管道将不需要的结果传给out-null,这将耗费更多的时间和资源。当然你不需要担心个别调用时消耗的资源,但是当在一个循环中,它的效果将会很明显。

所以相比out-null最好的办法是使用$null.

支持所有PS版本

(0)

相关推荐

  • PowerShell小技巧之使用Verb打开程序

    假设你经常需要编辑自己的"hosts"文件,这时你也许会手动在记事本中打开它.这个文件只允管理员成员编辑,普通的实例还无法操作. 这段代码它能让你很容易调整权限打开所有程序. function Show-HostsFile { $Path="$env:windir\system32\drivers\etc\hosts" Start-Process -FilePath notepad -ArgumentList $Path -Verb runas } 支持所有PS版本

  • PowerShell小技巧之使用Hotmail账号发送邮件

    在低版本的PowerShell上发送邮件可以借助.NET的system.net.mail.smtpclient类.在高版本的PowerShell中可以借助现成的命令:Send-MailMessage 我在尝试使用Hotmail时,遇到了一个错误: Send-MailMessage : The SMTP server requires a secure connection or the client was not authenticated. The server response was:

  • Powershell小技巧之删除不规则字符

    在路径中,其中有像引号冒号等不规则字符.如果你脚本中的活动路径是来自某段信息,你一定会需要返回符合规则的路径. 这里有段函数教你在任何路径中使用下划线去替换其中不规则部分: function Get-LegalPathName($Path) { $illegalChars = [System.IO.Path]::GetInvalidFileNameChars() foreach($illegalChar in $illegalChars) { $Path = $Path.Replace($ill

  • PowerShell小技巧之观察UNC路径

    许多命令能支持UNC路径,但是UNC路径在脚本中看起来很奇怪.看看下面代码: PS> Test-Path -Path \\127.0.0.1\c$ True 它返回了真,证明UNC路径存在.接着改变当前的路径指向一个非文件系统路径接着测试: PS> cd hkcu:\ PS> Test-Path -Path \\127.0.0.1\c$ False 一样的路径但现在却获得了失败.这是因为UNC路径没有包含盘符,而PS需要根据盘符去分配当前合适位置.如果当前路径没有包含在磁盘路径下,Pow

  • PowerShell小技巧之从函数中返回多个值

    假设一个PS脚本函数需要返回多个值,最好的办法是返回对象并且存储对象独有的属性. 这里有一个不错的方法.它能轻松的返回你想要的多个信息,并将结果分配给多个变量: function Get-MultipleData { Get-Date 'Hello' 1+4 } $date,$text,$result=Get-MultipleData "The date is $date" "The text was $text" "The result is $resu

  • Powershell小技巧之设置IE代理

    IE的代理设置位于注册表中:"HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"下.关键键值为ProxyEnable和ProxyServer.所以通过更改注册表即可完成IE代理的设置. Function Set-IEProxy { param( [bool]$Enable=$false, [string]$ProxyServer, [ValidateRange(1,65535)] [int]$port,

  • Powershell小技巧之找出最大最小值

    要找出对象的最大最小值,请使用Measure-Object: $list = 1,4,3,1,3,12,990 $result = $list | Measure-Object -Minimum -Maximum $result.Minimum $result.Maximum 它支持多个数据并且还支持不通的数据类型,这里将它小小的修改就能返回WINDOWS目录下最近新创的文件: $list = Get-ChildItem -Path C:\windows $result = $list | Me

  • PowerShell小技巧之使用New-Module命令动态创建对象

    还记得当年怎样在PowerShell中动态创建对象吧?今天要分享的方法不敢自诩高大上,但也足以让New-Object感到汗颜. 背景 在System Center Operation Manager中有个Management Pack,叫做:"Microsoft.SystemCenter.OperationsManager.SummaryDashboard".在该MP中有个Discovery叫做:"Collect agent configurations".该工作流

  • Powershell小技巧之屏蔽输出结果

    从PS命令返回的任何结果后,对于任何不重要的结果将其屏蔽是非常重要的. 我们有很多方法去实现它,同时下面介绍两个比较特别的方法.注意下面两行尝试在C盘创建一个新的文件夹:.New-Item将输出这个文件夹的对象,但是当你在创建文件夹时你可能会想屏蔽创建的结果: $null = New-Item -Path c:\newfolderA -ItemType Directory New-Item -Path c:\newfolderB -ItemType Directory | Out-Null 那么

  • Powershell小技巧之获取MAC地址

    在Powershell中获取MAC地址不是很难.这里就有一种方法: 复制代码 代码如下: PS> getmac /FO CSV | ConvertFrom-Csv Physical Address                        Transport Name                         ----------------                        --------------                         5C-51-4F-6

  • Powershell小技巧之获取当前的时间并转换为时辰

    午时三刻已到,行刑,刀下留人,现在到底是不是午时,能否让PowerShell告诉我呢? 好的, 没问题.从晚上23点到凌晨2点之间属于子时,每两个小时一个时辰,依次为"子丑寅卯辰巳午未申酉戌亥". 函数获取当前时辰 用PowerShell脚本实现: function Get-ChinaTimeAlias { param( [ValidateRange(0,23)] [int]$Hour = (get-date).Hour ) $timeAliasArray='子丑寅卯辰巳午未申酉戌亥'

  • PowerShell小技巧之查找获取注册表路径

    在先前的技巧中我们说明如何将一个PS内置的路径格式转化成一个实际路径.这里介绍了一个例子.这段代码递归从HKEY_CURRENT_USER获取所有包含"powershell"词缀的键(简单的替换查询词缀将能获得你想要查询的任何东西) 复制代码 代码如下: Get-ChildItem -Path HKCU:\ -Include *PowerShell* -Recurse -ErrorAction SilentlyContinue|Select-Object -Property *Path

  • Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数

    这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad

  • PowerShell小技巧之发送TCP请求

    很多时候我们需要通过Socket发送特定的TCP请求给服务器的特定端口来实现探测服务器的指定端口所开启的服务.很多语言都有相应的方法实现上述需求,当然,PowerShell也不例外,比如我们要发送一个简单的http请求到指定的web服务器: GET / HTTP/1.1 Host:cn.bing.com 这里我们想请求微软必应的中文首页,如果需要通过PowerShell向cn.bing.com服务器发送get请求,就需要创建一个System.Net.Sockets.TcpClient对象,向指定

  • Powershell小技巧之使用WS-Man来调用PowerShell命令

    虽然PowerShell远程管理被构建在 WS-Management的之上,但它是协议中的协议.如果尝试使用 PSRP (PowerShell远程处理协议)直接进行交互,本质上需要在客户端机器上运行一个PowerShell副本.另一种方法是使用一个鲜为人知的远程命令行工具,称为WinRS.WinRS是一个简单的工具,允许远程CMD.EXE,它也是构建在WS-Management之上的.所不同的是WinRS重用了 WS-Transfer中的Create和Delete,并引入了一些新的自定义的SOA

  • Powershell小技巧之查询AD用户

    假若你登录到了一个AD中你可以轻松的查询AD目录.在先前的技巧中我们阐述了一个基本脚本.这里有一个可以自定义根目录的扩展方法(设置你的查询点),它支持同步查询(而不是递归到一个容器). 它同时也阐述了怎么从一个活动目录查找结果再将其转化成用户对象: $SAMAccountName = 'tobias' $SearchRoot = 'LDAP://OU=customer,DC=company,DC=com' $SearchScope = 'OneLevel' $ldap = "(&(obj

  • PowerShell小技巧之调用CloudFlare的SDK查询网站统计信息

    CloudFlare是举世闻名的CDN服务商,其免费套餐也足以满足普通用户.优化网站加载速度,缓存静态资源,分地域进行内容就近分发,抵御Ddos攻击.总之,很好,很厚道.但是在天朝许多结点被封,本身的DNS被封,和谷歌与FB一样,同是天涯沦落人(其实我们自己才是). 我在查看CloudFlare的SDK时,发现支持Windows平台支持Invoke-WebRequest,也就是PowerShell,就试着调用了下,果然可以. 比如查询网站的统计信息: $body = @{ a = 'stats'

  • PowerShell小技巧之执行SOAP请求

    SOAP的请求在Web Service是无处不在的,像WCF服务和传统ASMX asp.net的web Service.如果要测试SOAP服务是否好用通过web编程来实现就显得太过于复杂了,下面的脚本片段(snippet)将会轻而易举的完成通过powershell测试和调用SOAP服务: 这是一段程序代码. 复制代码 代码如下: function Execute-SOAPRequest (         [Xml]    $SOAPRequest,         [String] $URL

随机推荐