円記号単体ではエラー
\\Server\folder\MyDrive
このような場合、
$('\\Server\folder\MyDrive') -split "\"
解析中 "" - パターンの末尾に無効な \ があります。
バッククォートか?
$('\\Server\folder\MyDrive') -split "
"`
解析中 "" - パターンの末尾に無効な \ があります。
ヒント
文字列の中でダブルクオート「"」やシングルクオート「'」の文字を含めたい場合は、その文字を2回繰り返すことで、そのまま表示されます。
それならこれはどうか
`$('\\Server\folder\MyDrive') -split "\\"`
$('\\Server\folder\MyDrive') -split "\\"
Server
folder
MyDrive
成功しました。バックスラッシュ(日本語では円サイン)はエスケープが必要でそれは円マークです。
なので
$Stiringbalue -split "\\"
日本語では
$Stiringbalue -split
"¥¥"
とすることで、フォルダ名を分解できることになります。
ただしPowedrshellの場合はこれをSplit-Path
で行います。
Split-Pathについて
Ver 6.0以降は-Extension
-LeafBase
が追加されています。Scripting.FilesystemObjectのGetExtensionname, GetBaseNameと同様の機能です。
モジュール:
Microsoft.PowerShell.Management
指定されたパス部分を返します。
Split-Path
[-Path] <String[]>
[-Parent]
[-Resolve]
[-Credential <PSCredential>]
[<CommonParameters>]
説明
このコマンドレットは Split-Path 、親フォルダー、サブフォルダー、ファイル名など、パスの指定された部分のみを返します。 また、分割されたパスで参照されている項目を取得したり、パスが相対パスか絶対パスかを判断したりすることもできます。
このコマンドレットを使用すると、選択したパスの一部だけを取得または送信できます。
※ 通常はこのコマンドを使うため、円記号を区切り文字にするときのエスケープを意識しなくても良い。
例
例 1: パスの修飾子を取得する
-quolifer
を使用
ドライブを取得
D:
HKCU:
など。このような形で取得できる。
※ -NoQuoliferはこの逆というか、残りの部分だけが取得できる。
例 2: ファイル名を表示する
Split-Path -Path "C:\Test\Logs\*.log" -Leaf -Resolve
※ ファイル名が返る
例 3: 親コンテナーを取得する <-これ
Split-Path -Path "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt"
'C:\Documents and Settings\UserName\My Documents\My Pictures' | Split-Path | Split-Path
Documentsフォルダの取得
前回のトリビアと合わせると、環境によっては、このような形でDocumentsフォルダを取得できる
$($env:PSModulePath -split ';').Item(0) | split-Path | Split-Path