容器
容器是一个很通用的概念。比如文件、文件夹、注册表、磁盘分区、数组、hash表、命名空间、用户组、OU、数据库、数据表等等,它们的共同点就是包含了数据。 在PowerShell中一切都是从"PSDrive"开始的,您熟悉了操作PSDrive,基本就涵盖了对资源的操作。
Get-PSDrive
#输出
Name Used (GB) Free (GB) Provider Root --------- --------- -------- ----
Alias Alias
C 48.92 12.75 FileSystem C:\
Cert Certificate \
D 16.42 483.56 FileSystem D:\
Env Environment
F 11.21 188.77 FileSystem F:\
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Temp 48.92 12.75 FileSystem C:\Users\happy\AppData\Local\Temp\
Variable Variable
WSMan WSMan
我们来解读一下上面的输出
- Name :可以理解为限定前缀
- Used,Free 文件系统才有值
-
PowerShell 提供程序是 .NET 程序,提供对专用数据存储的访问,以便更轻松地查看和管理。 数据显示在驱动器中,你可以像在硬盘驱动器上一样访问路径中的数据。 可以使用提供程序支持的任何内置 cmdlet 来管理提供程序驱动器中的数据。 此外,还可以使用专为数据设计的自定义 cmdlet。 提供程序还可以向内置 cmdlet 添加动态参数。 这些参数仅在将 cmdlet 与提供程序数据一起使用时可用。
- 和挂载网络驱动器,或者快捷方式很像 PsDrive的结构据我的了解分为两种,一种是类似文件系统的树形结构、一种是前缀限定的变量.格式为"$<Name>:value"。访问方式有点不同,我们来尝试一下。
注册表、Cert、Wsman文件系统(树型结构)
New-PSDrive -Name User -PSProvider FileSystem -Root C:\users\<Your>\
New-PSDrive -Name scan -PSProvider FileSystem -Root \\files\scan
Get-PSDrive
#输出
User 48.86 12.80 FileSystem C:\users\happy\
ls cert:
ls wsman:
变量(前缀限定)
两个变量的驱动器:
- Env:系统的环境变量
- Variable: PowerShell的自动变量
访问方式和树型不同,文件系统大家都访问的很熟悉了,就不介绍了。
请注意区别
*item* cmdlet后面的驱动器是没有'$'符号的,驱动器和项名之间有个':'
请注意 **取值的语法"$Env:windir" '$'符号后面跟驱动器名加':'
**。
#遍历
Get-ChildItem Env:
Get-ChildItem variable:
#单独变量
Get-Item Env:windir
Get-Item variable:profile
#读取值
$Env:windir
$variable:profile
函数和别名(前缀限定)
Alias,Function
#别名
Set-Item -Path alias:np -Value "c:\windows\notepad.exe"
#函数:设置提示符
Set-Item -Path function:prompt -Value {'PS >'}
小技巧
- 使用环境变量或者自动变量在命令行参数或脚本中的时候最好是加 ""
- 环境变量和自动变量修改只在当前会话中有用,关闭后就会被丢弃
- 修改一些东西的时候如果提示失败,可以试试 -Force参数
- 可以在$profile里设置一些变量,这样每次打开Shell都会自动创建
- 一个很好的练习方法,每次操作电脑的时候,想一下我用PoserShell可以操作吗?
最后
博客只能起到介绍性的作用,官方文档才是最终归宿。那么我为什么要写博客,您为什么要花时间来看博客? 博客能够提供您一条入门的路径,或者说一个知识点的介绍。帮您在茫茫多的文档中划定一个范围,让您能够有所适从。博客会提供一些示例,让您快速判断对这个知识点是不是感兴趣。如果您决定去阅读文档,那么我想请您一定要多花点时间在about开头的文档上。会让您的技术水平有质的提升 About文档
标签:容器,系列,Get,Env,FileSystem,cmdlet,驱动器,PowerShell,PSDrive From: https://blog.51cto.com/u_15652454/6619459