You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何更简洁地获取不带扩展名的文件完整路径?

更简洁的PowerShell获取无扩展名文件完整路径的方法

你可以用以下几种更简洁的方式实现,避免冗长的[Path]方法组合:

方法1:正则替换(最简洁)

直接通过正则匹配并移除最后一个扩展名部分:

$DestFilePath = "C:\Users\username\Desktop\Test Fonts\Helvetica Now Display Black.ttf"
$FullPathNoExtension = $DestFilePath -replace '\.[^.]+$'

这个正则会精准匹配路径中最后一个.及其后面的所有字符(即文件扩展名),替换为空后直接得到目标路径,适合绝大多数常规文件路径场景。

方法2:利用文件对象属性(更严谨)

通过Get-Item获取文件对象,直接调用其内置属性组合路径:

$DestFilePath = "C:\Users\username\Desktop\Test Fonts\Helvetica Now Display Black.ttf"
$fileItem = Get-Item $DestFilePath
$FullPathNoExtension = Join-Path $fileItem.DirectoryName $fileItem.BaseName

BaseName属性本身就是不带扩展名的文件名,结合DirectoryName直接用Join-Path组合,逻辑清晰且能自动处理路径分隔符问题,同时兼容无扩展名的文件。

方法3:字符串截取(需额外判断)

通过字符串索引截取最后一个.之前的内容:

$DestFilePath = "C:\Users\username\Desktop\Test Fonts\Helvetica Now Display Black.ttf"
if ($DestFilePath.LastIndexOf('.') -ge 0) {
    $FullPathNoExtension = $DestFilePath.Substring(0, $DestFilePath.LastIndexOf('.'))
} else {
    $FullPathNoExtension = $DestFilePath
}

这种方法需要先判断路径中是否存在.,避免无扩展名文件导致的报错,适合对性能要求较高且场景单一的情况。

内容的提问来源于stack exchange,提问作者fmotion1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:06:07