search
LoginSignup
76

More than 1 year has passed since last update.

posted at

updated at

PowerShellメモ パス関連操作

■目次

■パス関連の操作

◇抽出

◎パスからファイル名を取得(拡張子あり)

ps25.png

[System.IO.Path]::GetFileName("C:\Folder1\Folder2\FileA.txt")    # ファイル名部分を取得
実行結果
FileA.txt

◎パスからファイル名を取得(拡張子なし)

ps26.png

[System.IO.Path]::GetFileNameWithoutExtension("C:\Folder1\Folder2\FileA.txt")    # 拡張子を除いたファイル名部分を取得
実行結果
FileA

◎パスから拡張子を取得

ps27.png

[System.IO.Path]::GetExtension("C:\Folder1\Folder2\FileA.txt")    # 拡張子部分を取得
実行結果
.txt

◎パスから親の要素を取得

ps28.png

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: エラー

◎パスから末尾の要素を取得

ps29.png

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: カレントディレクトリ名

◎パスからルートディレクトリ(ドライブ文字)を取得

ps30.png

Split-Path -Qualifier C:\Folder1\Folder2\FileA.txt
実行結果
C:

◎パスからルートディレクトリ(ドライブ文字)以外を取得

ps31.png

Split-Path -NoQualifier C:\Folder1\Folder2\FileA.txt
実行結果
\Folder1\Folder2\FileA.txt

◇結合

◎パスを結合

ps32.png

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)

■参考サイト

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
What you can do with signing up
76