我在powershell 2.0脚本中的变量中有一个绝对路径.我想剥离扩展,但保留完整的路径和文件名.最简单的方法吗?
所以如果我C:\Temp\MyFolder\mytextfile.fake.ext.txt在一个名为的变量中,请说$file
我想回来
C:\Temp\MyFolder\mytextfile.fake.ext
CB.*_*CB. 20
如果是一个[string]类型:
$file.Substring(0, $file.LastIndexOf('.'))
Run Code Online (Sandbox Code Playgroud)
如果是一个[system.io.fileinfo]类型:
join-path $File.DirectoryName $file.BaseName
Run Code Online (Sandbox Code Playgroud)
或者你可以施展它:
join-path ([system.io.fileinfo]$File).DirectoryName ([system.io.fileinfo]$file).BaseName
Run Code Online (Sandbox Code Playgroud)
Ant*_*ios 11
这是我更喜欢的最佳方式和其他例子:
$FileNamePath
(Get-Item $FileNamePath ).Extension
(Get-Item $FileNamePath ).Basename
(Get-Item $FileNamePath ).Name
(Get-Item $FileNamePath ).DirectoryName
(Get-Item $FileNamePath ).FullName
# the path
$file = 'C:\Temp\MyFolder\mytextfile.fake.ext.txt'
# using regular expression
$file -replace '\.[^.\\/]+$'
# or using System.IO.Path (too verbose but useful to know)
Join-Path ([System.IO.Path]::GetDirectoryName($file)) ([System.IO.Path]::GetFileNameWithoutExtension($file))
Run Code Online (Sandbox Code Playgroud)
您应该使用简单的.NET Framework方法,而不是将路径部分拼凑在一起或进行替换。
PS> [System.IO.Path]::GetFileNameWithoutExtension($file)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21066 次 |
| 最近记录: |