■目次
- 抽出
- 結合
- チェック
- 変換
■パス関連の操作
◇抽出
◎パスからファイル名を取得(拡張子あり)
[System.IO.Path]::GetFileName("C:\Folder1\Folder2\FileA.txt") # ファイル名部分を取得
実行結果
FileA.txt
◎パスからファイル名を取得(拡張子なし)
[System.IO.Path]::GetFileNameWithoutExtension("C:\Folder1\Folder2\FileA.txt") # 拡張子を除いたファイル名部分を取得
実行結果
FileA
◎パスから拡張子を取得
[System.IO.Path]::GetExtension("C:\Folder1\Folder2\FileA.txt") # 拡張子部分を取得
実行結果
.txt
◎パスから親の要素を取得
Split-Path -Parent C:\Folder1\Folder2\FileA.txt
実行結果
C:\Folder1\Folder2
入力 | 出力 |
---|---|
C:\Folder1\Folder2\FileA.txt |
C:\Folder1\Folder2 |
C:\Folder1\Folder2\ |
C:\Folder1 |
C:\Folder1\Folder2 |
C:\Folder1 |
C:\Folder1 |
C:\ |
C:\ |
|
C: |
エラー |
◎パスから末尾の要素を取得
Split-Path -Leaf C:\Folder1\Folder2\FileA.txt
実行結果
FileA.txt
入力 | 出力 |
---|---|
C:\Folder1\Folder2\FileA.txt |
FileA.txt |
C:\Folder1\Folder2\ |
Folder2 |
C:\Folder1\Folder2 |
Folder2 |
C:\Folder1 |
Folder1 |
C:\ |
C:\ |
C: |
カレントディレクトリ名 |
◎パスからルートディレクトリ(ドライブ文字)を取得
Split-Path -Qualifier C:\Folder1\Folder2\FileA.txt
実行結果
C:
◎パスからルートディレクトリ(ドライブ文字)以外を取得
Split-Path -NoQualifier C:\Folder1\Folder2\FileA.txt
実行結果
\Folder1\Folder2\FileA.txt
◇結合
◎パスを結合
Join-Path C:\Folder1\Folder2 FileA.txt
実行結果
C:\Folder1\Folder2\FileA.txt
入力1 | 入力2 | 出力 |
---|---|---|
C:\Folder1\Folder2 |
FileA.txt |
C:\Folder1\Folder2\FileA.txt |
C:\Folder1\Folder2\ |
FileA.txt |
C:\Folder1\Folder2\FileA.txt |
C:\Folder1\Folder2\ |
\FileA.txt |
C:\Folder1\Folder2\FileA.txt |
◇チェック
◎パス存在チェック
# ファイル存在チェック
if (Test-Path C:\Folder1\FileA.txt) { Write-Host "あるよ" } else { Write-Host "ないよ" }
実行結果(ファイルが存在する場合)
あるよ
◎絶対パスかチェック
if (Split-Path C:\Folder1\Folder2 -IsAbsolute) { Write-Host "1_絶対パス" } else { Write-Host "1_相対パス" }
if (Split-Path ..\Folder3\Folder4 -IsAbsolute) { Write-Host "2_絶対パス" } else { Write-Host "2_相対パス" }
実行結果
1_絶対パス
2_相対パス
◇変換
◎相対パスを絶対パスに変換
Convert-Path .
実行結果(カレントディレクトリがWorkの場合)
C:\Work
カレントディレクトリ | 入力 | 出力 |
---|---|---|
C:\Work |
. |
C:\Work |
C:\Folder1\Folder2 |
..\..\Windows |
C:\Windows |
C:\Folder1\Folder2 |
.\*.txt |
C:\Folder1\Folder2\FileA.txt C:\Folder1\Folder2\FileB.txt
|
■動作確認した環境
- PowerShell V4 (Windows 8.1)
- PowerShell V5 (Windows 10)