どうも!リョクちゃです。
今回は、以前にも紹介したことのある、フルパスを取得する方法として
コマンドレットである、Resolve-Pathを使った方法を紹介していきます。
ちなみに前回はこちら
目次
フルパス
調べてみると、
フルパスとは、ファイルなどの所在を書き表すパス(path)の表記法の一つで、階層構造の頂点(最上位階層)からの位置関係を記述する方式。
出典:IT用語辞典 e-Words
例えば、下図の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のオプションを使います。
1 |
Get-ChildItem -Filter find_file.txt -Recurse | Resolve-Path |
このコマンド実行すると、全検索になってしまうので少々時間がかかってしまいますが
find_file.txtを対象に、見つかると、Resolve-Pathでfind_file.txtの場所を返してくれます。
結果として、
が返ってきます。
先頭に”Microsoft.PowerShell.Core\FileSystem::”が付くので、
何らかの処理をしたい場合は、除去する必要があります。
場合によっては、以下のコマンドの方が使い勝手がいいかもしれません。
こちらのコマンドについては、
まとめ
ファイルのフルパスを取得しておくことで、
今まで手動でしていた作業を自動化することも可能です。
作業パターンを、洗い出して置いて定常的な作業であった場合は、自動化できると思うので、
今回のような作業がある場合は、
PowerShellを使って自動化するのも効率化への第一歩ですね。
例えば、あるフォルダを別のフォルダへ移動・コピーさせたい場合には、
今回のコマンドレットが使えます。
最後までお読みいただき、ありがとうございます。