-
if ... else ... 语句,我们可以根据条件表达式的值为 True 或者 False ,分别执行 if 代码块或者 else 代码块。 注意: else 后面有个“:”。 if age >= 18: print 'adult' else: print 'teenager'查看全部
-
Python代码的缩进规则:具有相同缩进的代码被视为代码块 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误 注意: if 语句后接表达式,然后用:表示代码块开始。 如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车查看全部
-
记录一下查看全部
-
给多个变量赋值查看全部
-
Excel导出对象 管道结果导出为文本文件看起来不规整,越读起来也不方便。所以最好导出为Excel格式“csv”,这样的文件默认支持Microsft Excel程序打开,并处理。 PS C:PowerShell> Get-Service | Export-Csv a.csv PS C:PowerShell> .a.csv 使用这些导出命令时,切忌不要在管道中使用Format-Table,否则导出的结果不正常,自己可以测试。那怎样选择属性呢?可是使用Select-Object。 Html导出对象 Html导出对象和Excel导出大同小异。 PS C:PowerShell> Get-Service | ConvertTo-Html -Title "ls result" | Out-File a.html PS C:PowerShell> .a.html查看全部
-
强制以文本显示 Powershell的文本转换一般发生在管道的末尾,但是如果需要对文本处理可是强制转换成文本。 PS C:PowerShell> ls . -Recurse | Out-String 目录: C:PowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/12/19 17:05 ABC d---- 2011/12/19 17:06 ABD d---- 2011/12/19 17:06 ABE d---- 2011/11/29 18:21 myscript -a--- 2011/12/19 11:31 500 a.html PS C:PowerShell> (ls | Out-String -Stream).gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array查看全部
-
修改管道格式 之前讨论过,Powershell默认会在每行命令的末尾追加一条Out-Default,Out-Default默认包含了一条Out-Host,那是不是Out-Host就是英雄无用武之地了。事实上,可以通过Out-Host控制管道的版式。 Powershell不但会自动把管道结果发送到输出设备上,而且还会把管道结果转换成可读的文本。这个自动转换与Format-Table有点像。但是完全依靠自动转换有时会碰到很奇怪的输出结果。 例如当单独使用Get-Service时,结果会以表格的形式输出,但是使用pwd;Get-Service时Service信息以列表形式输出。 PS C:PowerShell> Get-Service Status Name DisplayName ------ ---- ----------- Running AdobeARMservice Adobe Acrobat Update Service Stopped AeLookupSvc Application Experience Stopped ALG Application Layer Gateway Service PS C:PowerShell> pwd;Get-Service Path ---- C:PowerShell Status : Running Name : TrkWks DisplayName : Distributed Link Tracking Client 第二行使用了两条命令,通过分号间隔。但是为什么Service信息会以列表显示 呢?因为经过Powershell的解释器处理,上面例子中的第二条命令会变成: & { pwd;Get-Service} | Out-Default Powershell在命令中没有发现特别指定的版式信息,就会尝试从第一条命令的第一个结果对象中寻找线索。并且把这种版式强加给紧接着的其它命令。 怎样避免上述问题,最好的办法就是要明确指定。 pwd;Get-Service | Out-Host查看全部
-
吸收输出结果 有的命令无论执行成功或失败都会有输出,有时不需要这些输出时可以使用 | Out-Null,这条命令的作用和 >$null 一样。尤其在函数中使用比较多,因为如果没有特别指明return 。Powershell函数会把输出结果作为函数的返回值。为了避免这种麻烦,通常在管道后加一条命令Out-Null 或 >$null吸收输出结果。 PS C:PowerShell> md ABC 目录: C:PowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/12/19 17:05 ABC PS C:PowerShell> md ABD >$null PS C:PowerShell> md ABE | Out-Null查看全部
-
可以将管道的结果转换成文本输出,默认是Out-Default。可以通过Get-Command -verb out查看Powershell都有哪些输出的命令。 PS C:PowerShell> get-command -Verb out CommandType Name Definition ----------- ---- ---------- Cmdlet Out-Default Out-Default [-InputObject ] Cmdlet Out-File Out-File [-FilePath] [[-Encoding] Cmdlet Out-GridView Out-GridView [-InputObject ] Cmdlet Out-Host Out-Host [-Paging] [-InputObject ] Cmdlet Out-Null Out-Null [-InputObject ] [-Verbose] Cmdlet Out-Printer Out-Printer [[-Name] ] [-InputObject Cmdlet Out-String Out-String [-Stream] [-Width ] Out-Default 将输出发送到默认的格式化程序和默认的输出 cmdlet。 Out-File 将输出发送到文件。 Out-GridView 将输出发送到单独窗口中的交互表。 Out-Host 将输出发送到命令行。 Out-Null 删除输出,不将其发送到控制台。 Out-Printer 将输出发送到打印机。 Out-String 将对象作为一列字符串发送到主机。查看全部
-
保存快照以便后期使用 上面的例子都是把对象保存在变量中,变量有一个缺点就是一旦Powershell退出或者电脑关闭变量都会消失。所以最好的方法就是把对象保存到磁盘文件中。怎样把对象序列化成一个文件,Powershell提供了一条命令:Export-Clixml,可以完成此工作,还有一条反序列化的命令Import-Clixml。这样可以使Compare-object的命令更方便。例如一个月前保存一个$before对象,一个月后比较都可以。 PS C:PowerShell> Get-Process | Export-Clixml before.xml PS C:PowerShell> $before=Import-Clixml .before.xml PS C:PowerShell> $after=Get-Process PS C:PowerShell> Compare-Object -ReferenceObject $before -DifferenceObject $after查看全部
-
比较文件的内容 对于文本文件可以通过Get-Content进行读取,并且将文件以行为单位保存为一个数组,这时依然可以通过Compare-Object进行比较。下面的例子创建两个不同的文本文件,然后通过Compare-Object比较两个文件的Get-Content结果。 PS C:PowerShell> "Hellow >> Power >> Shell" >a.txt >> PS C:PowerShell> "Hollow >> Shell >> Linux" >b.txt >> PS C:PowerShell> Compare-Object (Get-Content .a.txt) (Get-Content .b.txt) InputObject SideIndicator ----------- ------------- Hollow => Linux => Hellow查看全部
-
检查对象的变化 Compare-Object并不仅仅能比较对象组中的是否新增和减少了对象,它还可以比较每个对象的属性变化,因为它有一个参数-property 。 PS C:PowerShell> Get-Service wsearch Status Name DisplayName ------ ---- ----------- Running wsearch Windows Search PS C:PowerShell> $svc1=Get-Service wsearch PS C:PowerShell> $svc1.stop() PS C:PowerShell> $svc2=Get-Service wsearch PS C:PowerShell> Compare-Object $svc1 $svc2 -Property Status,Name Status Name SideIndicator ------ ---- ------------- StartPending wsearch => Running wsearch查看全部
-
比较对象 有时需要比较前后两个时间段开启了那些进程,服务状态有什么变化。类似这样的工作可以交给Compare-Object。 比较不同的时间段 可以先将所有开启的进程信息快照保存到一个变量中,过一段时间,再保存一份新的进程快照,然后就可以通过Compare-Object进行对比了。 PS C:Powershell> $before=Get-Process PS C:Powershell> $after=get-process PS C:Powershell> Compare-Object $before $after InputObject SideIndicator ----------- ------------- System.Diagnostics.Process (notepad) => System.Diagnostics.Process (notepad) => System.Diagnostics.Process (AcroRd32) $before 是一个数组存储了当前所有的Process对象,Compare-Object的结果有两个列:InputObject为前后不一致的对象,SideIndicator为不一致状态,=>表示新增的对象,结合上面的例子分析:在before和after的时间段有3个进程(AcroRd32,AcroRd32,prevhost)关闭了,有2个进程开启了(notepad,notepad)。查看全部
-
统计和计算 使用Measure-Object可以对对象的属性求最小值、最大值、平均值、和。例如要查看当前目录文件占用空间的情况。 PS C:Powershell> ls | measure length Count : 19 Average : Sum : Maximum : Minimum : Property : length PS C:Powershell> ls | measure length -Average -Sum -Maximum -Minimum Count : 19 Average : 53768.8421052632 Sum : 1021608 Maximum : 735892 Minimum : 0 Property : length 使用Measure-Object还可以统计文本文件中的字符数,单词数,行数 例如我们可以把下面的文本保存到:word.txt 。 Retirement Anxiety Spreads Among the One Percent Report: Green Monday a Boon for Online Shopping 5 Lesser-Known Ways to Boost Your Credit Score PS C:Powershell> Get-Content .word.txt | measure -Line -Word -Character Lines Words Characters Property ----- ----- ---------- -------- 3 23 141查看全部
-
使用Measure-Object和Compare-Object可以统计和对比管道结果。Measure-Object允许指定待统计对象的属性。Compare-Object可以对比对象前后的快照。查看全部
举报
0/150
提交
取消