文章目录
- abstract
- 一览表
- 常用的路径处理场景
- 重点路径处理命令
- 1. Split-Path
- 2. Convert-Path
- 3. Join-Path
- 4. Resolve-Path
- 5. Test-Path
- rvpa vs cvpa
- 总结对比
- powershell provider@powershell提供程序
abstract
在 PowerShell 中,处理路径相关的命令十分丰富,它们可以帮助我们管理、解析和操作文件路径。
详细的文档介绍请查阅powershell官方指南(bing 搜索),或者本地help手册
一览表
以下是一些常见的与路径处理相关的 PowerShell 命令的总结:
命令 | 功能简介 | 示例 |
---|---|---|
Split-Path | 将路径分解为各个部分,或提取特定部分(如目录名或文件名)。 | Split-Path "C:\temp\file.txt" 返回 C:\temp |
Join-Path | 将多个部分组合成一个完整路径。 | Join-Path "C:\temp" "file.txt" 返回 C:\temp\file.txt |
Resolve-Path | 返回符合指定路径的绝对路径(支持通配符)。 | Resolve-Path "C:\temp\*.txt" |
Convert-Path | 将相对路径转换为绝对路径。 | Convert-Path ".\file.txt" |
Test-Path | 检查指定路径是否存在(文件或目录)。 | Test-Path "C:\temp\file.txt" |
Get-Item | 获取文件或目录的详细信息。 | Get-Item "C:\temp\file.txt" |
Set-Location (alias: cd ) | 改变当前工作目录。 | Set-Location "C:\temp" |
Get-Location (alias: pwd ) | 显示当前工作目录。 | Get-Location |
Push-Location | 保存当前路径,并切换到新路径。 | Push-Location "C:\temp" |
Pop-Location | 恢复到上一次的路径(与 Push-Location 配合使用)。 | Pop-Location |
Get-ChildItem (alias: ls ) | 列出指定目录中的文件和子目录。 | Get-ChildItem "C:\temp" |
New-Item | 创建新文件或目录。 | New-Item -Path "C:\temp\new.txt" -ItemType File |
Remove-Item | 删除文件或目录。 | Remove-Item "C:\temp\file.txt" |
Copy-Item | 复制文件或目录。 | Copy-Item "C:\temp\file.txt" "C:\backup" |
Move-Item | 移动或重命名文件或目录。 | Move-Item "C:\temp\file.txt" "C:\newfolder" |
常用的路径处理场景
-
提取路径的不同部分
Split-Path
可以用来提取路径中的目录、文件名或扩展名:Split-Path "C:\temp\file.txt" -Leaf # 返回文件名 "file.txt" Split-Path "C:\temp\file.txt" -Parent # 返回目录 "C:\temp"
-
组合多个路径部分
Join-Path
可以将不同的路径部分组合成一个完整的路径:Join-Path "C:\temp" "file.txt" # 返回 "C:\temp\file.txt"
-
验证路径是否存在
使用Test-Path
来验证路径(文件或文件夹)是否存在:Test-Path "C:\temp\file.txt" # 如果存在,返回 $true;否则返回 $false
这些命令可以帮助你高效地管理和操作文件系统中的路径,并支持不同的平台(如 Windows 和 Linux)上的路径格式转换。
重点路径处理命令
以下是 PowerShell 中与路径处理相关的几个重要命令的详细总结:
(更多用法查看命令的文档)
1. Split-Path
-
功能: 用于将路径分解为不同部分,或提取指定部分(如文件名或父路径)。
-
常用参数:
-Parent
:返回父目录路径。-Leaf
:返回路径中的文件名或最后一部分。-Extension
:提取文件的扩展名。-NoQualifier
:移除路径中的驱动器号(仅返回路径部分)。
-
示例:
Split-Path "C:\temp\file.txt" -Parent # 返回 C:\temp Split-Path "C:\temp\file.txt" -Leaf # 返回 file.txt Split-Path "C:\temp\file.txt" -Extension # 返回 .txt
2. Convert-Path
-
功能: 将相对路径转换为绝对路径,解析符号链接或别名到实际路径。
-
适用场景: 当你使用相对路径、符号链接(如 Windows 中的快捷方式)时,
Convert-Path
可以帮你获取完整的绝对路径。 -
返回值:字符串(和resolve-path不同)
-
示例:
Convert-Path ".\file.txt" # 将当前目录下的相对路径转换为绝对路径 Convert-Path "C:\temp\..\file.txt" # 解析并返回 C:\file.txt
3. Join-Path
-
功能: 将多个路径部分合并为一个完整的路径,保证路径之间有正确的分隔符。
-
常用参数:
-Path
:基础路径。-ChildPath
:要添加到基础路径的子路径。
-
示例:
Join-Path "C:\temp" "file.txt" # 返回 C:\temp\file.txt Join-Path "C:\temp" "subdir\file.txt" # 返回 C:\temp\subdir\file.txt
4. Resolve-Path
-
功能: 返回符合指定路径的绝对路径,支持通配符匹配和路径解析。它也会解析符号链接。
-
适用场景: 当需要处理不确定路径(如带有通配符的路径)时,
Resolve-Path
可以返回所有匹配的实际路径。 -
示例:
Resolve-Path "C:\temp\*.txt" # 返回匹配的所有 .txt 文件的绝对路径 Resolve-Path ".\file.txt" # 返回相对路径对应的绝对路径
5. Test-Path
-
功能: 检查指定路径是否存在(可以是文件、目录、注册表项等)。
-
常用参数:
-PathType
:指定要检查的路径类型(如Leaf
表示文件,Container
表示目录)。-NewerThan
:用于检查文件是否比指定的时间更新。
-
示例:
Test-Path "C:\temp\file.txt" # 检查文件是否存在 Test-Path "C:\temp" -PathType Container # 检查是否是一个目录 Test-Path "C:\temp\file.txt" -NewerThan (Get-Date).AddDays(-1) # 文件是否为最近1天创建
rvpa vs cvpa
-
rvpa
,cvpa
两个命令类似,但是存在一定的区别-
命令 解释 cvpa
Converts a path from a PowerShell path to a PowerShell provider path.
TheConvert-Path
cmdlet converts a path from a PowerShell path to a PowerShell provider path.rvpa
Resolves the wildcard characters
in a path, and displaysthe path contents
.
TheResolve-Path
cmdlet displays the items and containers that match the wildcard pattern at the location specified. The match can include files, folders, registry keys, or any other object accessible from a PSDrive provider.
-
-
关于powershell provider(path),查看下一节或相关链接
PS> rvpa HKLM:\Software\MicrosoftPath
----
HKLM:\Software\MicrosoftPS> cvpa HKLM:\Software\Microsoft
HKEY_LOCAL_MACHINE\Software\Microsoft
- 可以看到两者并不完全相同
总结对比
命令 | 功能 | 典型用例 |
---|---|---|
Split-Path | 分解路径,提取父路径、文件名、扩展名等 | 提取目录 Split-Path "C:\temp\file.txt" -Parent |
Convert-Path | 将相对路径转换为绝对路径 | 将 .\file.txt 转换为完整路径 Convert-Path ".\file.txt" |
Join-Path | 合并多个路径部分为一个完整路径 | 合并 Join-Path "C:\temp" "file.txt" |
Resolve-Path | 返回符合指定路径的绝对路径,支持通配符 | 解析 Resolve-Path "C:\temp\*.txt" |
Test-Path | 检查路径是否存在,支持文件、目录、注册表等的存在性检查 | 检查文件是否存在 Test-Path "C:\temp\file.txt" |
这些命令是 PowerShell 中路径处理的核心工具,可以帮助开发者更方便地操作和管理文件系统中的路径。
powershell provider@powershell提供程序
-
提供程序简介 - PowerShell | Microsoft Learn
-
查看提供程序数据