PowerShellでtouchコマンドを使いたい人へ

2024/04/19に公開

はじめに

PowerShellってcdとかmkdirとかは使えるのに、
touchコマンドは使えないのちょっと不便だなーって思ってました。

同じ悩みを持つ方へ参考になればと思い、自分なりの解決策を共有いたします。

解決策 - profileにfunctionとAliasを設定する

動作環境

  • Windows 11
  • PowerShell 7.4.2 (Windows Terminal)
  • Visual Studio Code

設定手順

  1. PowerShellを開きます。
  2. 次のコマンドを入力します(VSCodeがインストールされていることが前提です)。
code $profile
  1. 開いたps1ファイルに、以下のコードをコピペします。
# Touch-File関数を定義します。
function Touch-File {
    # パラメーターとしてFilePathを受け取ります。
    param(
        [string]$FilePath  # ファイルのパスを指定します。
    )

    # 指定されたパスにファイルが存在するかどうかを確認します。
    if (Test-Path -Path $FilePath) {
        # ファイルが存在する場合は、そのファイルの最終更新日時を現在時刻に設定してタイムスタンプを更新します。
        (Get-Item $FilePath).LastWriteTime = Get-Date
    } else {
        # ファイルが存在しない場合は、新しい空のファイルを作成します。
        $null | Set-Content -Path $FilePath
    }
}

# "touch" コマンドを Touch-File 関数にエイリアスします。
Set-Alias touch Touch-File
  1. 編集したps1ファイルを保存します(Ctrl+S)。
  2. VSCodeを閉じ、PowerShellを再起動します(Windows Terminalを使っている方は、新しいタブを開いても大丈夫です)。

以上の手順でtouchコマンドが使えるようになっていると思います。

GitHubで編集を提案

Discussion