1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Powershell 今日のトリビア splitで¥を使うときのエスケープはバッククォートではないが気にしなくてもよい

Last updated at Posted at 2022-11-14

円記号単体ではエラー

\\Server\folder\MyDrive
このような場合、

$('\\Server\folder\MyDrive') -split "\"
解析中 "" - パターンの末尾に無効な \ があります。

バッククォートか?

$('\\Server\folder\MyDrive') -split ""`
解析中 "" - パターンの末尾に無効な \ があります。

ヒント

PowerShellのエスケープシーケンス

文字列の中でダブルクオート「"」やシングルクオート「'」の文字を含めたい場合は、その文字を2回繰り返すことで、そのまま表示されます。

それならこれはどうか

`$('\\Server\folder\MyDrive') -split "\\"`

日本環境では
$('¥¥Server¥folder¥MyDrive') -split "¥¥"
と表示されます。
image.png

$('\\Server\folder\MyDrive') -split "\\"
Server
folder
MyDrive

成功しました。バックスラッシュ(日本語では円サイン)はエスケープが必要でそれは円マークです。
なので

$Stiringbalue -split "\\"
日本語では
$Stiringbalue -split"¥¥"
とすることで、フォルダ名を分解できることになります。
ただしPowedrshellの場合はこれをSplit-Pathで行います。

Split-Pathについて

Split-Path(Ver 5.1)

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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?