首页 > 系统相关 >(8)Powershell中变量的定义和使用

(8)Powershell中变量的定义和使用

时间:2024-01-19 14:44:57浏览次数:18  
标签:PS 定义 WINDOWS system32 myStr Powershell 变量

(8)Powershell中变量的定义和使用

这一节主要介绍Powershell中变量的定义和使用,以及使用变量时应该注意的事项。

和所有编程语言中的变量一样,Powershell中的变量也是存于存储值的内存单元,需要注意的是,Powershell中的变量是以美元符号($)开头的单字节(一般是英文字符,虽然ISE中支持双字节的字符,但是像任何编程语言,我们不鼓励不赞成使用中文等命名的变量)文本字符串表示,如 $a, $b 或者是 $my_str。

在Powershell中有3种不同的变量。

  • 用户自己创建的变量

    用户创建的变量由用户创建和维护。默认情况下,在 PowerShell 命令行中创建的变量只在当前PowerShell 窗口有效。关闭该窗口后,变量也会自动销毁(再次打开命令窗口不再存在,不能再引用之前定义的变量)。若要保存变量并使其在窗口关闭并再次打开时仍然有效,需要将其添加到 PowerShell 配置文件中(但并不建议这么做)。如果是在编写脚本,则可以在脚本中创建具有全局或局部作用域的变量。

  • 自动变量

    自动变量也称为内置变量,用于存储 PowerShell 的一些状态信息。这些变量由 PowerShell 创建和维护,PowerShell 根据需要更改变量值以保持其准确性。用户不能更改这些变量的值。例如,$PSHome 变量存储 PowerShell 安装目录的路径。

  • 首选项变量

    首选项变量就是Powershell当前命令窗口环境的首选项设置,这些变量由Powershell创建,并以默认值填充,用户可以更改这些变量的值,如 $MaximumHistoryCount 是历史记录的最大条数。


变量的定义和使用

创建(定义)新变量或更改变量的值,请使用以下格式的赋值语句

$<variable> = <value>

例如以下定义了字符串变量 $myStr 并修改了其值。如果要显示变量的值,直接输入变量的名称,包括美元符号$。

PS C:\WINDOWS\system32> $myStr="This variables defined by user"

PS C:\WINDOWS\system32> $myStr
This variables defined by user

PS C:\WINDOWS\system32> $myStr="user has changed the value of this variables"

PS C:\WINDOWS\system32> $myStr
user has changed the value of this variables

在定义和使用变量时,可以使用单引号和双引号,但需要注意单引号和双引号的区别。

PS C:\WINDOWS\system32> $myStr='this is string variables'

PS C:\WINDOWS\system32> $youStr='your want to display the $myStr'

PS C:\WINDOWS\system32> $youStr
your want to display the $myStr

注意上面的变量定义使用的单引号,变量 $youStr 中的变量 $myStr 并没有替换为其所代表的值,而是直接输出,意味单引号中的内容会直接输出,不做变量值的替换。


PS C:\WINDOWS\system32> $myStr="this is string variables"

PS C:\WINDOWS\system32> $youStr="your want to display the $myStr"

PS C:\WINDOWS\system32> $youStr
your want to display the this is string variables

注意上边的变量的定义使用的双引号,变量$youStr 中的变量 $myStr 会替换为其所代表的值,意味着双引号中的变量名在会替换为变量所代表的值。


如果需要在双引号表示的变量中输出变量名,即 $youStr="your want to display the $myStr" 你不想让变量 $youStr 中的 $myStr 发生替换,则需要在变量名之前添加英文符号倒引号"`"进行转义,在英文输入状态下,这个键位于"Esc"键的下面,注意下面命令的输出内容。

PS C:\WINDOWS\system32> $myStr="this is string variables"

PS C:\WINDOWS\system32> $youStr="your want to display the `$myStr"

PS C:\WINDOWS\system32> $youStr
your want to display the $myStr

变量的保存

用户创建的变量只在当前会话中可用,关闭会话(当前命令窗口)变量将丢失。如果需要保存变量,就需要将其保存在配置文件中,配置文件中的变量将在命令窗口打开时自动加载,将会添加所有的会话中。

可以在命令行输入 $profile 来查看配置文件的路径。

例如,如果需要修改 $VerbosePreference 变量的值为 "Continue" (默认是"SilentlyContinue"),可以再命令行输入 $profile 找到配置文件的路径,通过Notepad等文本编辑器进行修改,或是利用 Add-Content 进行修改。


包含特殊字符的变量名称

如果变量中包含特殊字符,可以使用大括号{} 强制Powershell按字面解释变量名称,如果要定义或是引用包含特殊字符(如短划线,句点,冒号,圆括号)的变量,这会非常有用。

PS C:\WINDOWS\system32> ${this is string array}="a","b","c"

PS C:\WINDOWS\system32> ${this is string array}
a
b
c

以上命令定义了的变量名是 ${this is string array}。

如要引用的变量名称包含圆括号,用大括号将变量名称括起来

PS C:\WINDOWS\system32> Get-ChildItem ${env:ProgramFiles(x86)}


    Directory: C:\Program Files (x86)


Mode                 LastWriteTime         Length Name                                                                      
----                 -------------         ------ ----                                                                      
d-----        2021/12/10     18:20                Accenture                                                                 
d-----         2023/8/24     21:05                Avecto                                                                    
d-----          2022/4/7     17:41                Blueberry Software                                                        
d-----          2023/8/8      9:38                Cisco                                                                     
d-----         2023/8/14     16:25                Common Files                                                              
d-----         2024/1/19      7:20                Google                                                                    
d-----        2023/11/18      7:33                Internet Explorer      

如果要引用变量名称包含大括号,用大括号将变量名称括起来,变量内部的大括号之前添加倒引号"`"字符转义大括号,倒引号是在引文输入状态下,键盘上"Esc"下面的按键,这个类似于上文讲到的如果在双引号中不想对变量名称替换为值时添加的倒引号。

PS C:\WINDOWS\system32> ${this`{value`}is} = 1

PS C:\WINDOWS\system32> ${this`{value`}is}
1

总结

关于变量,需要注意的是,Powershell中的变量可以使用特殊字符,另外Powershell中的变量可以存储任何类型的对象,整数,字符串,数组,哈希表,服务,进程,事件日志等,即可以将任何一条命令的执行结果赋值给一个变量。最后,在定义变量时,不能定义与内置变量名称一样的变量,因为内置变量是只读,不允许用户更改,会在Powershell的内置变量中讲到Powershell中都包含哪些内置变量。

标签:PS,定义,WINDOWS,system32,myStr,Powershell,变量
From: https://www.cnblogs.com/zhang-snail/p/17974557

相关文章

  • 通过设置CUDA_VISIBLE_DEVICES环境变量来指定使用哪些GPU设备
    指定单个GPU设备:CUDA_VISIBLE_DEVICES=0os.environ["CUDA_VISIBLE_DEVICES"]="0"指定多个GPU设备:CUDA_VISIBLE_DEVICES=0,1,2指定一个范围的GPU设备:CUDA_VISIBLE_DEVICES=0-2在设置了CUDA_VISIBLE_DEVICES环境变量后,只有被指定的GPU设备会被程序所使用,其他未被指定的GPU设备将不......
  • STM32CubeMX教程18 DAC - DMA输出自定义波形
    1、准备材料开发板(正点原子stm32f407探索者开发板V2.4)STM32CubeMX软件(Version6.10.0)野火DAP仿真器keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动一台示波器逻辑分析仪nanoDLA2、实验目标使用STM32CubeMX软件配置STM32F407开发板的DACOUT1实现输出0-3.3V周期为12.8ms的正弦......
  • @RestControllerAdvice定义返回格式
    原文链接:如何优雅的写Controller层代码?一、拦截异常,封装返回值@RestControllerAdvicepublicclassControllerExceptionAdvice{@ExceptionHandler({BindException.class})publicResultVoMethodArgumentNotValidExceptionHandler(BindExceptione){/......
  • 用户自定义模板中数据区域
    在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档,那么应该如何编辑制作Word模板呢?方法一:直接打开Word文件插入书签假如使用数据区域(DataRegion)来定义模板中动态填充数据的位置,那么直接打开一个Word文件,在其中添加“PO_”开头的书签即可制作word模板......
  • 变量常量作用域
    变量常量作用域变量变量就是可以变化的量java是强类型语言,每个变量抖必须声明类型java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域inta=1,b=2,c=3;Stringname="老铁";charx='X';doublepi=3.14;变量作用域//类变量staticstaticd......
  • HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例
    HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例声明式UIArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。如果组件的接口定义没有包含必选构造参数,则组件后面的“()”......
  • (0)powershell常用命令
    (0)powershell常用命令1.PowerShell判断数组里面是否包含指定字符串元素判断数组是否包含指定元素PSC:\WINDOWS\system32>$arrColors="blue","red","green","yellow","white","pink","orange","turquoise"......
  • MFC 自定义控件添加 tip
    一、要求1.自定义tip提示并实时提示,跟随鼠标移动2.避免重复刷导致tip闪烁3.picture控件添加自定义变量二、tip涉及2.1CMFCToolTipCtrl、CMFCToolTipInfoCMFCToolTipCtrl*m_ptooltip;//注册控件、传递提示消息CMFCToolTipInfo*m_ttinfo;//样式处理......
  • vue+antd-vue(自定义iconfont图标组件)
    1.方式一代码如下import{createFromIconfontCN}from'@ant-design/icons-vue';constIconFont=createFromIconfontCN({scriptUrl:newURL('./assets/font/iconfont.js',import.meta.url).href});app.component('IconFont',IconFont);......
  • (7)Powershell算术运算符
    (7)Powershell算术运算符本系列博客从这一节开始是Powershell的语法知识,在开始学习语法之前,希望你对Powershell有个基本的了解,比如开发工具的使用,面向对象等特性,详细内容使劲戳这里(1)-(6)的内容。本节主要介绍Powershell中的算术运算符。Powershell支持以下算术运算符......