ファイル処理を行なっているとJoin-Pathをネストして使いたい時が結構ある。Pathを3つとか4つとか指定していっぺんにJoinしてくれると良いのだが、どうもそのような機能は無さそう。
ということで簡単な関数を作ってみた。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 | function Join-MPath { if(!$args.Count){return} $rtnPath = $args[0] foreach($p in $args[1..$args.Count]) { $rtnPath = Join-Path $rtnPath $p } $rtnPath } "---" Join-MPath "---" Join-MPath "c:" "---" Join-MPath "c:" "windows" "---" Join-MPath "c:" "\windows\" "\system32" |
関数自体は何の変哲もないが、個人的には結構便利。
牟田口さんからコメントを頂きました。
いつも有益な情報をありがとうございます。
パイプで繋ぐ方法、良いですね。Powershellっぽくて。
使わせてきただきます。(__)
たしかに、Join-Pathの-childPathパラメータが配列を受け取ってくれればなあと思うことありますね。
返信削除ネストにするとカッコが鬱陶しいですが、パイプで繋ぐと割とすっきりするかな、と思いました。
"c:\"|Join-Path -child \windows\|Join-Path -child \system32
何回も使う場合は関数定義のほうが楽ですね。