【PowerShell】任意のファイルのフルパスを取得する~Resolve-Path~

どうも!リョクちゃです。

今回は、以前にも紹介したことのある、フルパスを取得する方法として

コマンドレットである、Resolve-Pathを使った方法を紹介していきます。

ちなみに前回はこちら

電話番号を検索するときに最も簡単な方法としては、桁数による判定や判定する対象が固定であれば、これを条件式に当てはめることで判定ができます。しかし、打ち間違いによる禁止文字の混在などは見極めることができず、どうしても漏れが出てしまいます。そんな時に活用できる正規表現、今回はPowerShellで紹介しています。



フルパス

調べてみると、

フルパスとは、ファイルなどの所在を書き表すパス(path)の表記法の一つで、階層構造の頂点(最上位階層)からの位置関係を記述する方式。

フルパス 【full path】 絶対パス

出典:IT用語辞典 e-Words

例えば、下図のTest.txtのフルパスは、

フルパス : A:\C\Test.txt

ちなみに相対パスで表す場合、

相対パス : ..\C\Test.txt

相対パスとは、フルパスと相対する位置づけで、調べてみると

相対パスとは、ファイルなどの所在を書き表すパス(path)の表記法の一つで、現在位置からの相対的な位置関係を記述する方式。起点となる位置から目的の位置までの道筋にある要素を順に並べて記述する。

相対パス 【relative path】 相対パス指定 / 相対パス名

出典:IT用語辞典 e-Words

Resolve-Pathを使ってみる

フルパスの説明も一通りざっとですが、できたのでいよいよPowerShellで

Resolve-Pathコマンドレットを使って、任意のファイルのフルパスを取得してみます。

Resolve-Pathだけでは、ファイルのフルパスを取得できないので、

Get-ChildItemと組み合わせます

今回は、デスクトップにある、Testフォルダの中のfind_file.txtのフルパスを取得します。

下図のような感じになります。

今回は取得したいファイルが、find_file.txtと決まっているので

Get-ChildItemには、-Filterと-Recurseのオプションを使います。

このコマンド実行すると、全検索になってしまうので少々時間がかかってしまいますが

find_file.txtを対象に、見つかると、Resolve-Pathでfind_file.txtの場所を返してくれます。

結果として、

Desktop\Test\find_file.txt

が返ってきます。

先頭に”Microsoft.PowerShell.Core\FileSystem::”が付くので、

何らかの処理をしたい場合は、除去する必要があります。

場合によっては、以下のコマンドの方が使い勝手がいいかもしれません。

$変数名 = (Get-ChildItem -Path <“パス名”> -Filter <対象のファイル>).Fullname

こちらのコマンドについては、

Get-ChildItemを使って特定の拡張子を持ったファイルを取得する方法については、触れましたがファイルがどこに保存されているか、フルパスで取得する方法については触れていなかったので紹介します。ファイルのフルパスを取得して、ファイルごとに処理をさせたい場合などに使えるので参考になれば嬉しいです。

まとめ

ファイルのフルパスを取得しておくことで、

今まで手動でしていた作業を自動化することも可能です。

作業パターンを、洗い出して置いて定常的な作業であった場合は、自動化できると思うので、

今回のような作業がある場合は、

PowerShellを使って自動化するのも効率化への第一歩ですね。

例えば、あるフォルダを別のフォルダへ移動・コピーさせたい場合には、

今回のコマンドレットが使えます。

最後までお読みいただき、ありがとうございます。

Windows PowerShell実践システム管理ガイド 第3版 マイクロソフト関連書

Windows PowerShell実践システム管理ガイド 第3版 マイクロソフト関連書

横田 秀之, 河野 憲義
3,971円(08/16 21:05時点)
発売日: 2017/10/20
Amazonの情報を掲載しています

スポンサーリンク




スポンサーリンク
スポンサーリンク