🔖

PowerShellで長いパスを持つファイルやディレクトリを削除する方法

2024/07/08に公開

Windows環境で長いパスやファイル名を持つディレクトリを削除する際、標準のRemove-Itemコマンドでは削除できない場合があります。このような場合には、cmdコマンドを使用してPowerShellの制限を回避する方法が有効です。この記事では、その方法について詳しく解説します。


目次

  1. 背景と問題点
  2. cmdコマンドを使用した削除方法
  3. 手順詳細
  4. 他の削除方法
  5. まとめ

1. 背景と問題点

Windowsファイルシステムには、ファイルパスが260文字を超えるとエラーが発生するという制限があります。特にNode.jsプロジェクトでは、node_modulesディレクトリに大量のファイルとフォルダがネストされるため、削除が困難になることがあります。この制限を回避するためには、標準のPowerShellコマンド以外の方法を用いる必要があります。

2. cmdコマンドを使用した削除方法

この問題を解決するために、cmdコマンドを使用することができます。cmdrd(remove directory)コマンドは、PowerShellのRemove-Itemコマンドと異なり、長いパスに対しても有効に機能します。

3. 手順詳細

以下の手順で、長いパスを持つディレクトリを削除する方法を紹介します。

ステップ1: PowerShellを(管理者)として開く。Cmdでも可

  1. スタートメニューを開きます。
  2. PowerShellを検索します。
  3. 検索結果からWindows PowerShellを右クリックし、管理者として実行を選択します。

ステップ2: cmdコマンドを使用してディレクトリを削除

PowerShellの管理者権限ウィンドウで以下のコマンドを入力します。ここでは、例としてC:\work\fund-property-mgmt-frontend\node_modulesディレクトリを削除します。

cmd /c "rd /s /q C:\work\fund-property-mgmt-frontend\node_modules"
  • cmd /c: cmdコマンドを実行し、その後に続くコマンドを実行します。
  • rd: ディレクトリを削除します。
  • /s: 指定したディレクトリとそのサブディレクトリをすべて削除します。
  • /q: 確認のプロンプトを表示せずに削除を実行します。

5. まとめ

長いパスを持つファイルやディレクトリを削除する際には、PowerShellの標準コマンドでは削除できないことがあります。その場合、cmdrdコマンドを使用する方法が有効です。この記事で紹介した方法を参考にして、問題を解決してください。


Discussion