PowerShell小技巧之True和False的类型转换

在条件判断时,离不开$True和$False,将其它类型转换成Bool类型时,有几点需要留意:

其它类型转换成布尔类型

PS> 0,1,-1,'0','1','true','false',$null | foreach { [bool]$_ }
False
True
True
True
True
True
True
False

总结:只有整数0和Null才能转换成False,其它都会被强制类型转换成True

布尔类型转换成字符串

代码如下:

PS> $true,$false | foreach { $_.ToString() } True False

这个应当没什么悬念。

布尔类型转换成整数

代码如下:

PS> $true,$false | foreach { [int] $_ } 1 0

1和0分别代表true和false也可以理解。

(0)

相关推荐

  • PowerShell脚本trap语句捕获异常写法实例

    先看一个脚本文件:3.three.test.ps1 复制代码 代码如下: Get-FanBingbing #命令不存在 然后这样捕获: 复制代码 代码如下: trap [exception] {  '在trap中捕获到脚本异常'  $_.Exception.Message  continue } .\3.three.test.ps1 异常捕获成功,输出: 复制代码 代码如下: 在trap中捕获到脚本异常 The term 'Get-FanBingbing' is not recognized a

  • PowerShell中使用Out-String命令把对象转换成字符串输出的例子

    本文介绍在PowerShell中如何将cmdlet输出的对象,转换为string字符串类型,便于后期的处理. PowerShell中的cmdlet输出的结果都是以对象(Object)的形式存在的.对于Object类型,在后期处理时有利有弊,当然利大于弊.但某些时候,我们希望cmdlet输出的结果直接是字符串,那应该怎么来实现呢? PowerShell中提供了一个Out-String的cmdlet,来看看它的介绍:Out-String cmdlet 将 Windows PowerShell 管理的

  • PowerShell: Try...Catch...Finally 实现方法

    复制代码 代码如下: function Try    {        param        (            [ScriptBlock]$Command = $(throw "The parameter -Command is required."),            [ScriptBlock]$Catch   = { throw $_ },            [ScriptBlock]$Finally = {}        ) &$Finally  

  • shell实现tr删除替换详解

    tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换. 语法:tr [–c/d/s/t] [SET1] [SET2]   #SET1: 字符集1:SET2:字符集2             -c:complement,用SET2替换除SET1以外的字符.             -d:delete,删除SET1中所有的字符,不转换.             -s:squeeze-repeats,压缩SET1中重复的字符.             -t:truncate-se

  • Stream、WshShell、WshUrlShortcut对象及Shell.Application的参数与使用

    Kafree收集整理 来源:论坛转载无法确定出处,如有版权问题请与我们联系 1.Stream对象 组件:"Adodb.Stream"  有下列方法:  Cancel 方法   使用方法如下   Object.Cancel   说明:取消执行挂起的异步 Execute 或 Open 方法的调用.  Close 方法   使用方法如下   Object.Close   :关闭对像  CopyTo 方法   使用方法如下   Object.CopyTo(destStream,[CharNum

  • PowerShell小技巧之True和False的类型转换

    在条件判断时,离不开$True和$False,将其它类型转换成Bool类型时,有几点需要留意: 其它类型转换成布尔类型 PS> 0,1,-1,'0','1','true','false',$null | foreach { [bool]$_ } False True True True True True True False 总结:只有整数0和Null才能转换成False,其它都会被强制类型转换成True 布尔类型转换成字符串 复制代码 代码如下: PS> $true,$false | fo

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

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

  • Powershell小技巧之判断是否包涵大小写

    使用正则表达式可以检查一个字符中是否包涵一个大写字母: $text1 = 'this is all lower-case' $text2 = 'this is NOT all lower-case' $text1 -cmatch '[A-Z]' $text2 -cmatch '[A-Z]' 结果将返回"true"或"false" 反过来检查是否包含小写,可以尝试这样: $text1 = 'this is all lower-case' $text2 = 'this

  • 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小技巧之获取TCP响应(类Telnet)

    通常情况下,为了检测指定的TCP端口是否存活,我们都是通过telnet指定的端口看是否有响应来确定,然而默认情况下win8以后的系统默认是不安装telnet的.设想一下如果你黑进了一个服务器,上面没装telnet,但是为了进一步渗透进内网,需要探测内部服务器特定端口是否打开,同时你还不愿意安装telnet,担心引起管理员注意.那么好吧,在这个情况下你需要我的这个脚本.由于它是原生态的PowerShell语句完成,木有telnet你也照样能检测TCP端口的情况了. 下面首先上代码,后面进行讲解:

  • PowerShell小技巧之定时记录操作系统行为

    作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件.或者在另外一个场景,当黑客拿下一个普通权限的shell之后,想看看最近有哪些用户登陆过,操作过什么,以便根据用户习惯采取进一步行动获取更高权限,这个时候记录用户行为就显得很重要了. 可能有读者觉得此时安装个监控软件不就行了么,拜托,你入侵别人的系统,你装个监控软件,你把管理员试做无物么?这个时候P

  • PowerShell小技巧之获取Windows系统密码Hash

    当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢?作为白帽子,已经在对手防线上撕开一个口子,如果你需要进一步扩大战果,你首先需要做的就是潜伏下来,收集更多的信息便于你判断,便于有更大的收获.用什么方法才能有尽可能高的权限,同时能更有效的隐藏自己,是留webshell,留后门,种木马还是Rootkit?webshell,哪怕是一句话木马都很容易被管理员清除,放了木马,也容易被有经验的管理员查出,不管是早期自己创建进程,进程被干掉就完了,还是注入进程的木马,或者是以服务自启动的木马

  • 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小技巧之启动远程桌面连接

    以Windows Server 2012 R2为例,其实非常简单.先启用远程连接: (gwmi -class win32_terminalservicesetting -namespace "root\cimv2\terminalservices").setallowtsconnections(1) 然后再启用几条防火墙规则即可,用PowerShell(需要管理员权限)更显其威武: PS> Get-NetFirewallRule -Name RemoteDesktop* | se

  • PowerShell小技巧之尝试ssh登录

    在PSNet程序集中继续进行扩展,在$env:PSSpace/PSNet/TCPOp/下创建Invoke-SSHLogin.ps1脚本用于在传入指定ssh地址.用户名和密码后返回是否登录成功. 在$env:PSSpace/PSNet/下创建Lib目录用于存放在脚本中需要使用的第三方库,由于在本文中需要引用Renci.SshNet.dll用户可以从http://sshnet.codeplex.com/releases/view/72214中下载程序,解压后将文件放置在$env:PSSpace/PS

随机推荐