动手实验答案_Windows PowerShell实战指南(第3版)_[共2页]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动手实验答案271 21.9
在这里有一个重要的概念是,当在作用域内定义一个变量、别名或函数时,当前作用域就无法访问父作用域内的任何同名变量、别名或函数。
PowerShell总会使用局部定义的元素。
例如,如果你将New-Alias Dir Get-Service命令放入一个脚本,那么在当前脚本中,别名Dir总是运行Get-Service而不是Get-ChildItem(实际上,Shell很可能不允许你这么做,这是由于其需要保护内置别名不会重新被定义)。
通过在脚本作用域内定义别名,你可以防止Shell去父作用域查找标准和默认的Dir。
当然,对于Dir别名的重定义只能持续到脚本执行结束之前,而全局作用域默认的Dir 将不受影响。
这些作用域相关的理念可能会让你感到困惑。
你可以通过永远不依赖除了当前作用域内的其他作用域来避免这种混淆。
因此在尝试在脚本中访问一个变量时,请确保你已经在同一个作用域内对其赋值。
在Param()块内的参数可以实现这一点,还有很多其他方式可以将值或对象赋予一个变量。
21.8 动手实验
注意:对于本次动手实验来说,你需要运行PowerShell v3或更新版本PowerShell的计算机。
将下面的命令添加到一个脚本中。
你首先需要识别出需要定义为参数的元素,比如说计算机名称。
最终的脚本应该定义好参数,并且你还需要为脚本创建基于注释的帮助。
运行脚本从而对脚本进行测试,并使用Help命令,从而确保基于注释的帮助可以正常工作。
请不要忘记阅读本章提到的帮助文件以获取更多信息。
下面是命令。
Get-WmiObject Win32_LogicalDisk -comp $evn:computername -filter
➥"drivetype=3" |
➥Where {($_.FreeSpace / $_.Size) -lt .1 } |
➥Select -Property DeviceID,FreeSpace,Size
提示如下:你至少可以发现2处信息需要变为参数。
该命令用于列出少于给定可用空间的驱动器。
显而易见,你并不只想把localhost(在本例中,我们以PowerShell的方式使用%computername%环境变量)作为目标,并且你不希望10%(也就是1)作为阈值。
你还可以选择将驱动器类型作为参数(这里也就是3),但是对于动手实验来说,保留其值为3即可。
21.9 动手实验答案
<#
.Synopsis
Get drives based on percentage free space。