請記住,我對此很陌生,要溫柔。Powershell - 字符串操作 - 從完整文件路徑獲取目錄
我有一個完整的文件路徑爲一個文件「C:\文件夾1 \文件夾2 \ 2017年3月1日 - FileName.csv」,我想操縱它返回該文件存儲在目錄(ç :\ folder1 \ folder2),減去文件名(01.03.2017 - FileName.csv)。
我試圖使這個模塊化,以便它將工作,無論文件所在的子文件夾的數量;我們也不會提前知道文件名,所以需要再次模塊化並刪除最後一個「\」
有關如何構建它的背景信息,我刻了一下代碼來自StackOverflow上看到的上一個問題:
Function Get-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName(「System.windows.forms」) |
Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = 「All files (*.*)| *.*」
$OpenFileDialog.ShowDialog() | Out-Null
$OpenFileDialog.filename
} #end function Get-FileName
# *** Entry Point to Script ***
$originalData = Get-FileName -initialDirectory 「c:\」 | Out-String
Write-Host $originalData
$originalDir = $originalData.Split('\')
$originalDir
運行此目前提示您將在Windows中看到「打開對話框」。您選擇一個文件夾,其輸出是目前:
C:\folder1\folder2\01.03.2017 - FileName.csv
C:
folder1
folder2
01.03.2017 - FileName.csv
我已經嘗試了一些不同的嘗試-join
,但沒有成功。
我們將有℃的輸入:\文件夾1 \文件夾2 \ 2017年3月1日 - FileName.csv作爲變量$ originalData。
我們希望可以將輸出爲C:\文件夾1 \文件夾2作爲變量$ originalDir。
'(GET-Childitem ITEMNAME).DirectoryName' – 4c74356b41
這將如何使用? '(Get-ChildItem $ originalData).DirectoryName'? –
這給你文件夾的路徑,只是試試 – 4c74356b41