[玩转系统] PowerShell - 从路径获取文件名 [4 种方法]
作者:精品下载站 日期:2024-12-14 05:24:34 浏览:16 分类:玩电脑
PowerShell - 从路径获取文件名 [4 种方法]
PowerShell - 从指定路径获取文件名
文件在系统上的位置可以通过其路径来确定。在 PowerShell 中,有多种方法可以从路径获取文件名。首先,在深入研究之前,必须了解路径中的内容。
路径中有什么?
路径以特定格式指示项目的位置。例如,文件的路径可以是C:\folder\subfolder\fileName.txt。如果将路径分成不同的部分,则该路径包括以下部分:
- C:\ 是驱动器、限定符或指定的路径。限定符从路径的左侧开始,以 co#lon (
:
) 结束。 - \folder\subfolder\ 表示文件夹及其子文件夹或容器。
- fileName.txt 是文件或叶的名称。叶子是路径的最后一部分或元素。
- .txt 是文件的扩展名。
使用 Split-Path
Cmdlet
使用带有 -Leaf
参数的 Split-Path
命令从 PowerShell 中的路径获取文件名。
使用拆分路径 Cmdlet:
Split-Path C:\Intel\project\ConvertString.ps1 -Leaf
输出 :
ConvertString.ps1
在 PowerShell 中,Split-Path cmdlet 返回给定路径的指定部分。正如我们在上一节中看到的,路径的元素只能是父文件夹、子文件夹、文件名或文件扩展名。
在上面的示例中,Split-Path
cmdlet 将给定路径 C:\Intel\project\ConvertString.ps1 分解为不同的部分。我们使用上面的-Leaf
参数来提取带有扩展名的文件名;正如我们所看到的,ConvertString.ps1 是给定路径中的文件名。
请注意,我们还可以使用带有 -LeafBase
参数的 Split-Path
命令获取不带扩展名的文件名。
将分割路径与 -LeafBase 一起使用:
Split-Path C:\Intel\project\ConvertString.ps1 -LeafBase
输出 :
ConvertString
正如我们所观察到的,返回的文件名 ConvertString
没有 ps1
扩展名。这里,上面使用 -LeafBase
参数来获取不带扩展名的文件名。
注意:仅 PowerShell 6.0 或更高版本支持此参数。
使用 Get-Item
Cmdlet
使用 Get-Item
cmdlet 从 PowerShell 中的路径获取文件名。 Get-item cmdlet 用于获取指定位置的项目。
使用获取项目 Cmdlet:
Get-Item C:\Intel\project\ConvertString.ps1
输出 :
Directory: C:\Intel\project
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/30/2022 9:35 PM 109 ConvertString.ps1
这里,我们使用 Get-Item cmdlet 从指定路径获取文件名;我们可以看到文件的模式、上次更新日期/时间、长度和名称,我们可以通过在 Name
列下查找文件名。
在我们的例子中,ConvertString.ps1
表示文件的名称。如果您只想获取文件名及其扩展名,请在上述命令末尾附加 .Name
,如下所示。
使用带有 .Name 的 Get-Item Cmdlet:
(Get-Item C:\Intel\project\ConvertString.ps1).Name
输出 :
ConvertString.ps1
我们可以看到,现在我们只从给定路径获取扩展名为 ConvertString.ps1
的文件名。如果您不想要文件扩展名,请尝试以下操作:
将 Get-Item Cmdlet 与 .BaseName 结合使用:
(Get-Item C:\Intel\project\ConvertString.ps1).BaseName
输出 :
ConvertString
现在仅返回文件名ConvertString
。注意上面的.BaseName
属性用于获取文件名,不包括其扩展名。
使用 Get-ChildItem
Cmdlet
使用 Get-ChildItem
cmdlet 从给定路径获取文件名。
使用 Get-ChildItem Cmdlet:
(Get-ChildItem C:\Intel\project\ConvertString.ps1).Name
(Get-ChildItem C:\Intel\project\ConvertString.ps1).BaseName
输出 :
ConvertString.ps1
ConvertString
具有 .Name
属性的 Get-ChildItem
返回带扩展名的文件名,而 .BaseName
属性返回不带扩展名的文件名。
使用 GetFileName() 方法
使用Path
类的GetFileName()
方法获取给定路径的文件名和扩展名。
使用 GetFileName 方法:
[System.IO.Path]::GetFileName('C:\Intel\project\ConvertString.ps1')
输出 :
ConvertString.ps1
命令[System.IO.Path]::GetFileName('C:\Intel\project\ConvertString.ps1')
从指定文件路径C:\Intel\检索文件名project\ConvertString.ps1 使用 System.IO.Path
类的 GetFileName()
方法。
此处,GetFileName()
方法返回文件名和文件扩展名,但不返回目录路径。因此,例如,如果文件路径为 C:\Intel\project\ConvertString.ps1,则文件名将为 ConvertString.ps1
。
如果要检索不带文件扩展名的文件名,可以使用 System.IO.Path
类的 GetFileNameWithoutExtension()
方法。例如:
使用 GetFileNameWithoutExtension 方法:
[System.IO.Path]::GetFileNameWithoutExtension('C:\Intel\project\ConvertString.ps1')
输出 :
ConvertString
获取多个文件名
在PowerShell中,我们可以从给定路径获取带有或不带有扩展名的多个文件名。
带扩展
使用 Get-ChildItem
cmdlet 从一个或多个给定位置检索项目,通过管道传输到方法 GetFileName()
以获取带扩展名的文件名。
获取带有扩展名的多个文件名:
Get-ChildItem -Path C:\Intel\project\ -Filter *.ps1 | ForEach-Object -Process {[System.IO.Path]::GetFileName($_)}
输出 :
ConvertString-toDate.ps1
FunctionsFile.ps1
我们使用 Get-ChildItem
cmdlet 从一个或多个指定位置提取项目,并通过管道传输到方法 GetFileName()
以获取带扩展名的文件名。例如,Get-ChildItem
用于从给定位置 C:\Intel\project\ 获取文件。
-Filter
参数用于获取扩展名为 .s1
的文件,并使用管道 (|
) 将输出发送到下一个命令。之后,我们使用 ForEach-Object 来迭代给定目录中的每个文件。
接下来,将 -Process
参数与 System.IO.Path
类的 GetFileName()
方法一起使用来提取文件的名称带扩展名。我们还可以从给定目录获取多个不带扩展名的文件。让我们看看下面的内容,了解如何做到这一点。
不带扩展
使用 Get-ChildItem
cmdlet 将一个或多个指定位置的项目提取到方法 GetFileNameWithoutExtension()
以获取不带扩展名的文件名。
获取多个不带扩展名的文件名:
Get-ChildItem -Path C:\Intel\project\ -Filter *.ps1 | ForEach-Object -Process {[System.IO.Path]::GetFileNameWithoutExtension($_)}
输出 :
ConvertString-toDate
FunctionsFile
您可以观察到使用上述命令返回了 C:\Intel\project\ 中可用的两个文件。注意,上面的代码与上一节中的代码相同;我们仅用 GetFileNameWithoutExtension()
方法替换了 GetFileName()
方法来获取不带扩展名的文件名。
这就是如何在 PowerShell 中从 Path 获取文件名。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag