基本上,我通过字符斜杠(")分割了文件路径。我的代码试图基本上得到没有文件扩展名的文件名,因为我需要它来执行另一个操作。但是,我想确保这段代码在某种意义上是动态的,即使文件路径中有几个点(.),它仍然会检索文件路径的确切文件名,但没有文件扩展名。基本上,我只是想确保得到最后一次出现的。以及文件路径中没有文件扩展名的文件名。我试过使用LastIndexOf,但它不起作用。提前感谢任何回复这篇文章的人。
注:$fileparts被字符斜杠分割,但我不知道为什么它没有反映在post
上$sql_return_path = C:DocumentsTesttestFileResult.txt
#Get file directory with no file name
$filedirectory = Split-Path -Path $sql_return_path
#Split file path to get file name
$fileparts = ($sql_return_path).Split("")
$fileobject = 0
foreach($x in $filename) {
$filename = $fileparts[-1]
#Test
$filenamenoextension = $filename.LastIndexOf(".")[0]
#Official
#$filenamenoextension = $filename.split(".")[0]
$fileobject++
}
目前,$ filenamenextension按点(".")分割并获得索引0时的输出是testFileResult,它只是文件名,没有".txt"文件扩展名.
您可以简单地使用System.IO.Path类中的GetFileNameWithoutExtension方法示例
[System.IO.Path]::GetFileNameWithoutExtension("..xyzabc.de") # ==> "abc"
可以使用System.IO.FileInfo
对象来获得BaseName
和Extension
属性。
foreach ($f in Get-ChildItem $dir) {
$content = New-Object System.IO.FileInfo($f)
echo $content.BaseName
echo $content.Extension
}