我需要从文件路径中解放文件扩展名。 对于Eg:我有一个文件路径,如:
\\Test\data\data.dll
如何从文件路径中删除data.dll,以便我只得到
\\Test\data\
作为输出。
我尝试使用狂野角色 - *。但那没用。
谢谢!
答案 0 :(得分:4)
在您的情况下,有一个特殊的cmdlet,默认情况下会删除末尾的文件或文件夹。尝试:
$path = \\test\data\data.dll
#Get folderpath
Split-Path $path
#Get filename only (thanks to Christian for tip)
Split-Path $path -Leaf
答案 1 :(得分:0)
这是两种不同的方式。一种是使用Split-Path。另一种是使用正则表达式的-replace。它们在PowerShell V3中运行良好,但如果路径中包含驱动器号,则Split-Path在V2中不起作用,但您的系统没有该驱动器盘符。
#Get Folder
Split-Path '\\test\data\data.dll'
'\\test\data\data.dll' -replace '\\[^\\]+$'
#Get File
Split-Path '\\test\data\data.dll' -Leaf
'\\test\data\data.dll' -replace '^\\.*\\'
答案 2 :(得分:0)
为了解决@StephenMills在他的回答中提出的问题的解决方法,我只需加2美分:
PS C:\ps> ( [system.io.fileinfo]"J:\data\data.dll" ).FullName
J:\data\data.dll
PS C:\ps> ( [system.io.fileinfo]"J:\data\data.dll" ).BaseName
data
PS C:\ps> ( [system.io.fileinfo]"J:\data\data.dll" ).name
data.dll
PS C:\ps> ( [system.io.fileinfo]"J:\data\data.dll" ).DirectoryName
J:\data