2017-11-29 3 views
0

私はpowershellを学ぶのが初めてです。私のPowershellスクリプトでAzureデータレイクストアパス\data\sb\published\Juned\Testfile.txtから "Testfile.txt"を抽出しようとしています。私は("\data\sb\published\Juned\Testfile.txt" -split '\')[0]を使用しています。Powershell - 部分文字列を抽出する方法

これは、あなたがextenstionとファイル名を取得するには-leafパラメータでsplit-pathコマンドレットを使用することができ、エラーに

parsing "\" - Illegal \ at end of pattern. 
At line:1 char:1 
+ ("\data\sb\published\Juned\Testfile.txt" -split '\')[0] 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : OperationStopped: (:) [], ArgumentException 
    + FullyQualifiedErrorId : System.ArgumentException 
+0

:エラーの正確な理由は、-splitが正規表現を使用し、\が正規表現文字であるためです。以下の答えは、正規表現を使用しない.splitメソッドを使用しています。 –

答えて

0

を示している:あなたはabsolutlyあなたの割りに固執したい場合 split-path "\data\sb\published\Juned\Testfile.txt" -leaf

はあなたに近づきます最後の要素([0]の代わりに[-1]が最初の要素です)を選択する必要があります。"\data\sb\published\Juned\Testfile.txt".split('\')[-1]

+0

クイックヘルプに感謝します。分割パス "\ data \ sb \ published \ Juned \ Testfile.txt" -leafが動作します。 – juned

0

これらの2つの方法は、私の仕事:

FYI
split-path "H:\Documents\devops\tp-mkt-SPD-38.4.10.msi" -leaf 

TP-MKT-SPD-38.4.10.msi

[System.IO.Path]::GetFileName("C:\abc\xyz\test.txt") 

test.txtの

[System.IO.Path]::GetFileNameWithoutExtension("C:\abc\xyz\test.txt") 

テスト

+0

クイックヘルプに感謝します。分割パス "\ data \ sb \ published \ Juned \ Testfile.txt" -leafが動作します。 – juned

関連する問題