2017-05-04 118 views
1

我有一個foreach循環,它在修剪對象所在的完整路徑後獲取Folder4中的對象列表。如何從文件名中修剪文件擴展名

下面是示例代碼:

$row.Path = $path.InnerText.Replace("/Folder1/Folder2/folder3/folder4/","") 

樣本輸出:

usp_StoredProcedurename.prc, 

fn_FunctionName.udf 

File.sql 

我需要做的最後一件事是消除任何擴展,即.PRC,.PDF,.udf。 SQL等

下面是每個coplete:

enter image description here

+1

將代碼作爲圖像添加並不是好的做法 - 最好將它作爲文本**粘貼到您的問題**中(然後將其格式化爲代碼)。這樣做意味着任何人回答您的問題都可以輕鬆地在您的答案中使用您的代碼,而無需手動重新輸入。 –

回答

2

您可能正在尋找靜態GetFileNameWithoutExtension方法。要使用它,你必須一個文件名或路徑傳遞給它:如果你想

[System.Io.Path]::GetFileNameWithoutExtension("usp_StoredProcedurename.prc") 

取決於$row.Path實際輸出,你可以分裂路徑和加入他們回來以後。


替代,你可以使用一個正則表達式刪除您的字符串一次內的全部文件的文件擴展名:

$row.Path -replace '\..*' 

注意,正則表達式會後刪除一切點。

+0

您好Martin,我已經附上我的示例代碼,想知道GetfilenamewithoutExtension或Replace如何工作。 我很熟悉powershell,你能幫忙嗎? – Immortal