powershellでフォルダの数、ファイル数を計測していた作業中にエラーが発生しました。

ネットワークパスを指定してdirを使いたい。powershellを使えば実現可能。
フォルダの容量を調べるときにこんなことしてませんか? ファイルサーバーの各フォルダ容量を調べたい! 1つづつ選択して右クリックしてプロパティ・・・・。 さすがに効率悪すぎですよね。 フリーソフトでdisk...
「(フォルダ名) 一部が見つかりませんでした」
「一部が見つかりませんでした」ってどうゆうこと???
最初なんのことやら分かりませんでしたが、原因は簡単なことでした。
深い階層にあるファイルについて「一部が見つかりませんでした」
エラーメッセージにあるフォルダをまずチェックしました。
すると中にあるファイルの名前が異常に長い。。。
そしてそのファイルがある場所も超深い階層にある。
これが原因です。
通常の設定ではファイル名・パスの合計文字数が260文字を超えるとコマンドで参照することができません。
260文字制限が邪魔をしてGet-ChildItemコマンドで「一部が見つかりませんでした」というエラーが出力されたのです。
260文字制限解決方法
以下コマンドをpowershellで実行しましょう。
※Set-ItemPropertyの後に半角スペースがあります。
Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name LongPathsEnabled -value 1
その後に以下コマンド実行後「1」と表示されればOKです。
※Get-Item -Pathの後に半角スペースがあります。
(Get-Item -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem").GetValue("LongPathsEnabled")
その後Get-ChildItemコマンドでファイル数・フォルダ数を計測してみたところエラー無く完了することができました。
「一部が見つかりませんでした」というエラーが出たら260文字制限を疑ってみると解決するかもしれません。
コメント