【初心者向け】Windows PowerShellの移動コマンド完全ガイド|cd・Set-Locationの使い方を解説!

Windows

PowerShellを使っていて、
別のフォルダに移動したいのにうまくいかない
cdコマンドを打っても反応しない」
そんな悩みを持ったことはありませんか?

実は、PowerShellでのフォルダ移動コマンドは、Windowsの「コマンドプロンプト」と似ているようで少し違う点があります。

この記事では、PowerShellにおける「移動」に関するコマンドを初心者向けにわかりやすく紹介します。

スポンサーリンク
  1. PowerShellでの移動とは?基本概念を理解しよう
    1. カレントディレクトリとは?
    2. PowerShellプロンプトの見方
    3. 移動する理由
  2. 基本移動コマンド:Set-LocationとCD
    1. Set-Locationコマンド(正式名称)
    2. cdコマンド(エイリアス)
    3. どちらを使うべきか?
    4. 基本的な移動例
  3. 絶対パスと相対パスの使い分け
    1. 絶対パス(フルパス)
    2. 相対パス
    3. 相対パスの特殊記号
    4. 実用例
  4. ドライブをまたぐ移動の注意点
    1. ドライブ移動の基本
    2. 一括移動の方法
    3. ドライブ移動の実用例
  5. カレントディレクトリの確認方法
    1. Get-Locationコマンド
    2. 出力例
    3. プロンプトでの確認
  6. パスにスペースが含まれる場合の対処法
    1. 問題となるケース
    2. 解決方法1:ダブルクォートで囲む
    3. 解決方法2:タブ補完を活用
    4. 解決方法3:8.3形式の短縮名
  7. 便利な移動テクニック
    1. ドラッグ&ドロップを活用
    2. 履歴を使った移動
    3. 環境変数を使った移動
    4. よく使う場所への関数作成
  8. スクリプト内での移動処理
    1. 基本的なスクリプト例
    2. エラーハンドリング付きの移動
    3. 作業前の場所を保存する方法
  9. よくあるエラーと対処法
    1. エラー1:「パスが見つかりません」
    2. エラー2:「アクセスが拒否されました」
    3. エラー3:ネットワークパスの問題
    4. エラー4:特殊文字を含むパス
  10. 高度な移動テクニック
    1. ワイルドカードを使った移動
    2. 条件付き移動
    3. 最近更新されたフォルダに移動
  11. パフォーマンスとベストプラクティス
    1. 効率的な移動のコツ
    2. スクリプトでのベストプラクティス
  12. よくある質問と答え
  13. まとめ:移動コマンドをマスターして、PowerShell操作をスムーズに!

PowerShellでの移動とは?基本概念を理解しよう

カレントディレクトリとは?

カレントディレクトリとは、現在PowerShellが作業している場所(フォルダ)のことです。

ファイル操作やコマンド実行は、基本的にこの場所を基準に行われます。

PowerShellプロンプトの見方

PS C:\Users\Taro>

表示の意味:

  • PS:PowerShellを表す
  • C:\Users\Taro:現在いる場所(カレントディレクトリ)
  • >:コマンド入力待ち状態

移動する理由

効率的なファイル操作 目的のフォルダに移動してからファイル操作を行う

相対パスの活用 現在の場所を基準にした短いパス指定が可能

スクリプトの実行 特定のフォルダで実行する必要があるスクリプトの場合

ポイント: PowerShellでの移動操作を理解すれば、作業効率が大幅に向上します。

基本移動コマンド:Set-LocationとCD

Set-Locationコマンド(正式名称)

Set-Location C:\Users

特徴:

  • PowerShell固有のコマンドレット
  • 完全な機能を持つ
  • パラメーターやスイッチが豊富

cdコマンド(エイリアス)

cd C:\Users

特徴:

  • Set-Locationの別名(エイリアス)
  • 短くて覚えやすい
  • 従来のコマンドプロンプトユーザーに馴染み深い

どちらを使うべきか?

日常的な操作: cd(短くて便利)
スクリプト内: Set-Location(明確で読みやすい)
初心者: cdから始めてOK

基本的な移動例

# ユーザーフォルダに移動
cd C:\Users

# ドキュメントフォルダに移動
cd C:\Users\$env:USERNAME\Documents

# ルートディレクトリに移動
cd C:\

絶対パスと相対パスの使い分け

絶対パス(フルパス)

定義: ドライブレターから始まる完全なパス

# 絶対パスの例
cd C:\Users\Taro\Documents
cd D:\Projects\WebApp
cd "C:\Program Files\Microsoft Office"

メリット:

  • 現在の場所に関係なく確実に移動できる
  • スクリプトで安全に使用できる

デメリット:

  • 長くて入力が大変
  • 環境によってパスが変わる場合がある

相対パス

定義: 現在の場所を基準とした相対的なパス

親フォルダに移動

cd ..

現在のフォルダ内のサブフォルダに移動

cd .\project
cd project    # .\は省略可能

複数階層の移動

cd ..\..          # 2つ上の階層に移動
cd ..\Pictures    # 1つ上に移動してからPicturesフォルダへ
cd .\folder1\folder2  # 現在の場所からfolder1/folder2へ

相対パスの特殊記号

記号意味使用例
.現在のディレクトリcd .\subfolder
..親ディレクトリcd ..
~ユーザーのホームディレクトリcd ~

実用例

# 現在地:C:\Users\Taro\Documents

cd ..             # C:\Users\Taro に移動
cd .\Pictures     # C:\Users\Taro\Pictures に移動
cd ..\Downloads   # C:\Users\Taro\Downloads に移動
cd ~              # C:\Users\Taro に移動(ホームディレクトリ)

ドライブをまたぐ移動の注意点

ドライブ移動の基本

PowerShellでは、異なるドライブ間の移動に2つのステップが必要です。

ステップ1:ドライブの切り替え

D:

ステップ2:目的のフォルダに移動

cd D:\Work

一括移動の方法

方法1:Set-Locationの-Pathパラメーター

Set-Location -Path "D:\Work"

方法2:Push-LocationとPop-Location

Push-Location "D:\Work"  # D:\Workに移動し、元の場所を記憶
# 作業を行う
Pop-Location             # 元の場所に戻る

ドライブ移動の実用例

# 現在地:C:\Users\Taro

# 間違った方法(移動されない)
cd D:\Projects
Get-Location  # まだC:\Users\Taroにいる

# 正しい方法1
D:
cd D:\Projects
Get-Location  # D:\Projectsに移動

# 正しい方法2
Set-Location "D:\Projects"
Get-Location  # D:\Projectsに移動

カレントディレクトリの確認方法

Get-Locationコマンド

Get-Location

エイリアス:

  • gl
  • pwd(Print Working Directory)
# どれも同じ結果
Get-Location
gl
pwd

出力例

PS C:\Users\Taro> Get-Location

Path
----
C:\Users\Taro

プロンプトでの確認

PowerShellのプロンプト自体にもカレントディレクトリが表示されます:

PS C:\Users\Taro\Documents>

このC:\Users\Taro\Documentsが現在の場所です。

パスにスペースが含まれる場合の対処法

問題となるケース

# エラーになる例
cd C:\Program Files  # スペースがあるとエラー

解決方法1:ダブルクォートで囲む

cd "C:\Program Files"
cd "C:\Users\Taro\My Documents"
cd 'C:\Program Files'  # シングルクォートも可

解決方法2:タブ補完を活用

cd C:\Prog[Tab]  # Tabキーを押すと自動補完される

PowerShellは自動的にクォートを付けて補完してくれます。

解決方法3:8.3形式の短縮名

cd C:\PROGRA~1  # Program Filesの短縮名

注意: この方法は推奨されません。可読性が悪く、環境によって名前が変わる可能性があります。

便利な移動テクニック

ドラッグ&ドロップを活用

  1. エクスプローラーでフォルダを開く
  2. フォルダをPowerShellウィンドウにドラッグ
  3. パスが自動的に入力される
cd "C:\Users\Taro\Desktop\Project"  # ドラッグで自動入力

履歴を使った移動

最近訪れた場所に戻る

cd -  # 直前にいた場所に戻る(一部の環境で利用可能)

Push-LocationとPop-Locationの活用

# 現在の場所を保存して移動
Push-Location "C:\Temp"

# 何らかの作業を実行
Get-ChildItem *.txt

# 元の場所に戻る
Pop-Location

環境変数を使った移動

# ユーザーディレクトリに移動
cd $env:USERPROFILE

# デスクトップに移動
cd "$env:USERPROFILE\Desktop"

# 一時フォルダに移動
cd $env:TEMP

# システムルートに移動
cd $env:SystemRoot

よく使う場所への関数作成

# プロファイルに関数を定義
function godesk { cd "$env:USERPROFILE\Desktop" }
function gotemp { cd $env:TEMP }
function godown { cd "$env:USERPROFILE\Downloads" }

# 使用例
godesk  # デスクトップに移動
gotemp  # 一時フォルダに移動

スクリプト内での移動処理

基本的なスクリプト例

# backup.ps1
$SourcePath = "C:\Important\Data"
$BackupPath = "D:\Backup"

# バックアップ先に移動
Set-Location $BackupPath

# 現在の日付でフォルダ作成
$Date = Get-Date -Format "yyyy-MM-dd"
New-Item -ItemType Directory -Name $Date -Force

# バックアップフォルダに移動してファイルコピー
Set-Location $Date
Copy-Item "$SourcePath\*" -Destination "." -Recurse

エラーハンドリング付きの移動

$TargetPath = "C:\Work\Project"

try {
    if (Test-Path $TargetPath) {
        Set-Location $TargetPath
        Write-Host "移動成功: $TargetPath"
    } else {
        Write-Error "指定されたパスが存在しません: $TargetPath"
    }
} catch {
    Write-Error "移動中にエラーが発生しました: $($_.Exception.Message)"
}

作業前の場所を保存する方法

# 現在の場所を保存
$OriginalLocation = Get-Location

try {
    # 作業フォルダに移動
    Set-Location "C:\Temp"
    
    # 何らかの作業を実行
    Get-ChildItem *.log | Remove-Item
    
} finally {
    # 必ず元の場所に戻る
    Set-Location $OriginalLocation
}

よくあるエラーと対処法

エラー1:「パスが見つかりません」

cd C:\NonExistentFolder
# Set-Location : パス 'C:\NonExistentFolder' が存在しないため検出できません。

対処法:

# パスの存在確認
if (Test-Path "C:\SomeFolder") {
    cd "C:\SomeFolder"
} else {
    Write-Host "指定されたパスが存在しません"
}

エラー2:「アクセスが拒否されました」

cd "C:\System Volume Information"
# Set-Location : パス 'C:\System Volume Information' へのアクセスが拒否されました。

対処法:

  • 管理者権限でPowerShellを起動
  • アクセス権限のあるフォルダを指定

エラー3:ネットワークパスの問題

cd \\server\share
# エラーが発生する場合がある

対処法:

# UNCパスの場合はSet-Locationを使用
Set-Location "\\server\share"

# または、ネットワークドライブをマップ
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\server\share"
cd Z:

エラー4:特殊文字を含むパス

cd C:\Folder[special]  # 角括弧でエラー

対処法:

cd "C:\Folder[special]"  # クォートで囲む

高度な移動テクニック

ワイルドカードを使った移動

# 最初に見つかった「Proj」で始まるフォルダに移動
cd .\Proj*

# ただし、複数該当する場合はエラーになるので注意

条件付き移動

# フォルダが存在する場合のみ移動
$folders = @("C:\ProjectA", "C:\ProjectB", "C:\ProjectC")

foreach ($folder in $folders) {
    if (Test-Path $folder) {
        Set-Location $folder
        Write-Host "移動しました: $folder"
        break
    }
}

最近更新されたフォルダに移動

# 最近更新されたサブフォルダに移動
$LatestFolder = Get-ChildItem -Directory | 
    Sort-Object LastWriteTime -Descending | 
    Select-Object -First 1

if ($LatestFolder) {
    cd $LatestFolder.FullName
    Write-Host "最新フォルダに移動: $($LatestFolder.Name)"
}

パフォーマンスとベストプラクティス

効率的な移動のコツ

タブ補完を活用

cd C:\Us[Tab]\Ta[Tab]\Do[Tab]  # 効率的に入力

エイリアスの活用

# よく使うパスにエイリアスを設定
Set-Alias -Name work -Value "Set-Location C:\Work"
work  # C:\Workに移動

履歴の活用

# PowerShellの履歴機能
# ↑キーで過去のコマンドを呼び出し

スクリプトでのベストプラクティス

# 推奨される書き方
[CmdletBinding()]
param()

$ErrorActionPreference = "Stop"
$OriginalLocation = Get-Location

try {
    # 作業ディレクトリに移動
    $WorkDir = "C:\Scripts\Work"
    if (-not (Test-Path $WorkDir)) {
        New-Item -ItemType Directory -Path $WorkDir -Force
    }
    Set-Location $WorkDir
    
    # メイン処理
    # ...
    
} catch {
    Write-Error "処理中にエラーが発生しました: $($_.Exception.Message)"
} finally {
    # 必ず元の場所に戻る
    Set-Location $OriginalLocation
}

よくある質問と答え

Q: cdとSet-Locationはどちらを使うべきですか?
A: 日常的な操作ではcd、スクリプト内ではSet-Locationを推奨します。機能的には同じです。

Q: Linuxのcdコマンドとの違いはありますか?
A: 基本的な動作は同じですが、PowerShellは大文字小文字を区別しません。また、ドライブの概念があります。

Q: ネットワークフォルダに移動できません
A: UNCパス(\server\share)の場合、Set-Locationを使用するか、ネットワークドライブをマップしてください。

Q: 移動先のフォルダが存在しない場合は?
A: エラーが発生します。事前にTest-Pathで存在確認することを推奨します。

まとめ:移動コマンドをマスターして、PowerShell操作をスムーズに!

重要ポイントまとめ:

コマンド目的使用例補足
cd または Set-Locationフォルダ移動cd C:\Users基本的な移動コマンド
cd ..親フォルダに移動cd ..相対パスの代表例
cd "C:\Program Files"スペース含むパス移動クォート必須エラー回避の基本
D: + cd D:\Folderドライブ移動2ステップが必要PowerShell特有の注意点
Get-Location現在位置確認Get-Location作業位置の確認

使い分けのコツ:

  • ✅ 日常操作:cdを使用(短くて便利)
  • ✅ スクリプト:Set-Locationを使用(明確で読みやすい)
  • ✅ 絶対パス:確実だが長い
  • ✅ 相対パス:効率的だが現在位置に依存

コメント

タイトルとURLをコピーしました