Mastering PowerShell 学习笔记-3
2014-01-25 21:33
246 查看
第三章 变量PS的变量不需要先声明就能直接使用,定义一个变量,只需要在字符串前面加上$符号变量可以由几乎所有的字符组成:字符数字下划线等,变量不区分大小写你甚至可以用特殊的字符来定义变量,只需要用大括号把它括起来# Variable names with special characters belong in braces:${this variable name is "unusual," but permitted} = "Hello World"${this variable name is "unusual," but permitted}Hello World= :等于号是赋值操作符,你可以给一个变量赋任何值,比如命令的结果>$listing = Get-ChildItem c:\>$listing
常量,写保护的变量通过添加选项ReadOnly设置变量为不可变的New-Variable test -value 100 -description `"test variable with write-protection" -option ReadOnly(` :数字1左边的符号,是转义字符)现在输入$test =200 命令将会出错。现在test变量不能被改变,你必须先删除它然后再重新定义它。del variable:\test -force$test = 200你可能觉得只要删除或者复制它就能改变一个变量还不够安全,那么ps给了你另外的选择,Constant它就像传统的常量一样,一旦被定义就不能被修改或者删除,它只能由new-variable创建,如果这个变量的名字已经存在,你也会得到一个错误。New-Variable test -value 100 -description "test variable with copy protection" -option Constant可以使用-Force参数来改变一个readonly的变量,但无法改变一个constant的变量变量的描述虽然你设置了变量的描述,但是却无法通过 dir variable:\test 或者 get-variable test 看到描述信息,这是因为默认情况下,ps只限制一个对象最重要的属性,而描述显然不是重要的信息,所以如果你希望看到一个对象全部的信息,则要使用format-table *,或者format-list *PS C:\Users\LIHUANG\Desktop\common> dir variable:\test |Format-List *PSPath : Microsoft.PowerShell.Core\Variable::testPSDrive : VariablePSProvider : Microsoft.PowerShell.Core\VariablePSIsContainer : FalseName : testDescription : test 3Value : 3Visibility : PublicModule :ModuleName :Options : NoneAttributes : {}还有很多自动变量,当你启动ps,他们就存在,你可以使用dir variable: 来查看自动变量分为3类,一类是用户信息,像$HOME 等,第二类是调整信息,你可以自定义ps的‘外观’,报告多详细的错误,当遇到错误一条命令是不是要继续运行等。第十一章会详细介绍。第三类是运行时信息,比如是谁在调用这条命令,命令的执行路径是什么。你可以使用Get-Help about_Automatic_variables 来查看详细信息。
Directory: Microsoft.PowerShell.Core\FileSystem::C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 06.26.2007 15:36 2420 d---- 05.04.2007 21:06 ATI d---- 08.28.2006 18:22 Documents and settings d---- 08.08.2007 21:46 EFSTMPWP d---- 04.28.2007 02:18 perflogs (...)ps允许你同时给多个变量赋值,下面的命令会给3个变量都赋值1$a = $b = $c = 1交换变量的值,你可以使用一个temp变量就像其他语言那样。也可以更加简洁:$Value1 = 10; $Value2 = 20$Value1, $Value2 = $Value2, $Value1能这么写主要是因为逗号,它会让等号的两边解析成数组(关于数组会在第四章讲到),而如果等候两边都是数组并且数量相等时,ps会自动把右边的值依次赋值给左边。Dir variable; :可以看到所有的变量(自动变量,和你自定义的变量)Dir variable:value* :找到特定的变量,此例子是找到value开头的变量,它会返回value1和value2这条命令也可以 使用参数, 比如 Dir variable: -include value* -exclude *1* (只会返回value2)如果不知道变量名字,但是知道变量的值,则可以通过以下命令查找:dir variable: | Out-String -stream | Select-String " 20 "注意:为了确定是找到‘20’,而不是任何值包含20(比如200),需要在20的前后加上空格。判断变量的值是否存在:Test-Path variable:\value2 返回trueTest-Path variable:\server 返回false判断一个变量是不是存在并不是特别有意义,当你给一个变量赋值的时候,它会直接覆盖之前的值。但有时候你希望仅当它不存在的时候赋值,或者有些值是写保护的,你可能不能直接覆盖它的值。变量会在ps关闭的时候直接被删除,所以并不需要特意去删除它,如果你非常想马上就删除它,那么可以使用del# create a test variable:>$test = 1
# verify that the variable exists: >Dir variable:\te*
# delete variable: >del variable:\test
# variable is removed from the listing:>Dir variable:\te*还有5个关于变量的命令
Clear-variable | Clear-variable a 相当于 $a=$null |
Get-Variable | 获得一个变量(返回一个object,而不是它的值 |
New-Variable | 新建一个变量,可以设置特殊的选项 |
Remove-Variable | 相当于del variable:\a |
Set-Variable | 相当于$a=12 |
相关文章推荐
- PowerShell 学习笔记——初识PowerShell
- Powershell学习笔记1-Here-string
- PowerShell 学习笔记(3)
- Matering PowerShell 学习笔记-2
- PowerShell 学习笔记——PS On MacOS
- PowerShell学习笔记(四)
- Powershell学习笔记三:了解对象
- SharePoint【学习笔记】-- 使用PowerShell添加和部署Solution
- PowerShell 学习笔记——对象(一)
- PowerShell 学习笔记——文件系统
- PowerShell 学习笔记——PS On MacOS
- PowerShell 学习笔记——管道
- PowerShell 学习笔记5
- PowerShell 学习笔记——初识PowerShell
- “笨办法学python”学习笔记-在终端powershell中对目录进行简单的编辑(一)
- PowerShell的学习笔记(4)---- 如何在使用Enter-PSSession的时候解决TrustedHosts list的问题?
- Powershell学习笔记(一)
- PowerShell 学习笔记——使用帮助系统
- PowerShell 2.0 学习笔记
- PowerShell学习笔记