\num-Force
+CategoryInfo:
WriteError:
(num:
String)[Remove-Item],SessionStateUnauthorizedAccessExcepti
+FullyQualifiedErrorId:
VariableNotRemovable,Microsoft.PowerShell.Commands.RemoveItemCommand
变量描述
在New-Variable可以通过-description添加变量描述,但是变量描述默认不会显示,可以通过Format-List查看。
PSC:
\>new-variablename-Value"me"-Description"Thisismyname"
PSC:
\>lsVariable:
\name|fl*
PSPath:
Microsoft.PowerShell.Core\Variable:
:
name
PSDrive:
Variable
PSProvider:
Microsoft.PowerShell.Core\Variable
PSIsContainer:
False
Name:
name
Description:
Thisismyname
Value:
me
Visibility:
Public
Module:
ModuleName:
Options:
None
Attributes:
{}
Powershell自动化变量
Powershell,程序设计 添加评论
十二072011
Powershell自动化变量是那些一旦打开Powershell就会自动加载的变量。
这些变量一般存放的内容包括
用户信息:
例如用户的根目录$home
配置信息:
例如powershell控制台的大小,颜色,背景等。
运行时信息:
例如一个函数由谁调用,一个脚本运行的目录等。
PSC:
\PowerShell>$HOME
C:
\Users\test
PSC:
\PowerShell>$currentProcessID=$pid
PSC:
\PowerShell>$currentProcessID
5356
PSC:
\PowerShell>Get-Process-Id$pid
HandlesNPM(K)PM(K)WS(K)VM(M)CPU(s)IdProcessName
-----------------------------------------------
3901030604331001721.115356powershell
PSC:
\PowerShell>$PROFILE
C:
\Users\test\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
powershell中的某些自动化变量只能读,不能写。
例如:
$Pid。
可以通过Get-Helpabout_Automatic_variables查看Automatic_variables的帮助。
TOPIC
about_Automatic_Variables
主题
about_Automatic_Variables
简短说明
说明存储WindowsPowerShell状态信息的变量。
这些变量由WindowsPowerShell创建并维护。
详细说明
下面是WindowsPowerShell中的自动变量的列表:
$$
包含会话所收到的最后一行中的最后一个令牌。
$?
包含最后一个操作的执行状态。
如果最后一个操作成功,则包含TRUE,失败则包含FALSE。
$^
包含会话所收到的最后一行中的第一个令牌。
$_
包含管道对象中的当前对象。
在对管道中的每个对象或所选对象执行操作的命令中,可以使用此变量。
$Args
包含由未声明参数和/或传递给函数、脚本或脚本块的参数值组成的数组。
在创建函数时可以声明参数,方法是使用param关键字或在函数名称后添加以圆括号括起、逗号
分隔的参数列表。
$ConsoleFileName
包含在会话中最近使用的控制台文件(.psc1)的路径。
在通过PSConsoleFile参数启动
WindowsPowerShell或使用Export-Consolecmdlet将管理单元名称导出到控制台文件
时,将填充此变量。
在使用不带参数的Export-Consolecmdlet时,它自动更新在会话中最近使用的控制台文件。
可以使用此自动变量确定要更新的文件。
$Error
包含错误对象的数组,这些对象表示最近的一些错误。
最近的错误是该数组中的第一个错误对象
($Error[0])。
$Event
包含一个PSEventArgs对象,该对象表示一个正在被处理的事件。
此变量只在事件注册命令(例如Register-ObjectEvent)的Action块内填充。
此变量的值是Get-Eventcmdlet返回的同一个对象。
因此,可以在Action脚本块中使用$Event变量的属性(例如
$Event.TimeGenerated)。
$EventSubscriber
包含一个PSEventSubscriber对象,该对象表示正在被处理的事件的事件订阅者。
此变量只在事件注册命令的Action块内填充。
此变量的值
是Get-EventSubscribercmdlet返回的同一个对象。
$ExecutionContext
包含一个EngineIntrinsics对象,该对象表示WindowsPowerShell主机的执行上下文。
可以使用此变量来查找可用于cmdlet的执行对象。
$False
包含FALSE。
可以使用此变量在命令和脚本中表示FALSE,而不是使用字符串”false”。
如果
该字符串转换为非空字符串或非零整数,则可将该字符串解释为TRUE。
$ForEach
包含ForEach-Object循环的枚举数。
可以对$ForEach变量的值使用枚举数的属性和方法。
此变量仅在运行For循环时存在,循环完成即会删除。
$Home
包含用户的主目录的完整路径。
此变量等效于%homedrive%%homepath%环境变量。
$Host
包含一个对象,该对象表示WindowsPowerShell的当前主机应用程序。
可以使用此变量在命
令中表示当前主机,或者显示或更改主机的属性,如$Host.version、$Host.CurrentCulture
或$host.ui.rawui.setbackgroundcolor(“Red”)。
$Input
一个枚举数,它包含传递给函数的输入。
$Input变量区分大小写,只能用于函数和脚本块。
(脚
本块本质上是未命名的函数。
)在函数的Process块中,$Input变量包含当前位于管道中的对
象。
在Process块完成后,$Input的值为NULL。
如果函数没有Process块,则$Input
的值可用于End块,它包含函数的所有输入。
$LastExitCode
包含运行的最后一个基于Windows的程序的退出代码。
$Matches
$Matches变量与-match和-notmatch运算符一起使用。
将标量输入提交给-match或-notmatch运算符时,如果检测到匹配,则会返回一个布尔值,
并使用由所有匹配字符串值组成的哈希表填充$Matches自动变量。
有关-match运算符的详细
信息,请参阅about_comparison_operators。
$MyInvocation
包含一个对象,该对象具有有关当前命令(如脚本、函数或脚本块)的信息。
可以使用该对象中的
信息(如脚本的路径和文件名($myinvocation.mycommand.path)或函数的名称
($myinvocation.mycommand.name))来标识当前命令。
对于查找正在运行的脚本的名称,这非常有用。
$NestedPromptLevel
包含当前提示级别。
值0指示原始提示级别。
该值在进入嵌套级别时递增,在退出嵌套级别时递减。
例如,在使用$Host.EnterNestedPrompt方法时,WindowsPowerShell会出现嵌套命令
提示符。
在WindowsPowerShell调试程序中到达断点时,WindowsPowerShell也会出现嵌
套命令提示符。
在进入嵌套提示时,WindowsPowerShell暂停当前命令,保存执行上下文,并递增
$NestedPromptLevel变量的值。
要创建更多嵌套命令提示符(最多128级)或返回到原始命
令提示符,请完成命令,或键入”exit”。
$NestedPromptLevel变量有助于跟踪提示级别。
可以创建包含此值的备用Windows
PowerShell命令提示符,以使此值始终可见。
$NULL
包含NULL或空值。
可以在命令和脚本中使用此变量表示NULL,而不是使用字符串”NULL”。
如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为TRUE。
$PID
包含承载当前WindowsPowerShell会话的进程的进程标识符(PID)。
$Profile
包含当前用户和当前主机应用程序的WindowsPowerShell配置文件的完整路径。
可以在命令
中使用此变量表示配置文件。
例如,可以在命令中使用此变量确定是否已创建某个配置文件:
test-path$profile
也可以在命令中使用此变量创建配置文件:
new-item-typefile-path$pshome-force
此外,还可以在命令中使用此变量在记事本中打开配置文件:
notepad$profile
$PSBoundParameters
包含活动参数及其当前值的字典。
只有在声明参数的作用域(如脚本或函数)中,
此变量才有值。
可以使用此变量显示或更改参数的当前值,也可以将参数值传递给
其他脚本或函数。
例如:
functiontest{
param($a,$b)
#Displaytheparametersindictionaryformat.
$psboundparameters
#CalltheTest1functionwith$aand$b.
test1@psboundparameters
}
$PsCmdlet
包含一个对象,该对象表示正在运行的cmdlet或高级函数。
可以在cmdlet或函数代码中使用该对象的属性和方法来响应使用的条件。
例如,
ParameterSetName属性包含正在使用的参数集的名称,而ShouldProcess方法将WhatIf
和Confirm参数动态添加到cmdlet。
有关$PSCmdlet自动变量的详细信息,请参阅about_Functions_Advanced。
$PsCulture
包含操作系统中当前所用的区域性的名称。
区域性确定数字、货币和日期等项的显示格式。
这是系
统的System.Globalization.CultureInfo.CurrentCulture.Name属性的值。
要获取系统
的System.Globalization.CultureInfo对象,请使用Get-Culturecmdl