すべてのフォルダとサブフォルダにsetCaseSensitiveInfoを再帰的に適用する
dotnetコアプロジェクト(Windows)を「大文字と小文字を区別する」ように設定しようとしているため、プロダクションサーバー(linux)と同じように動作します。
私はがこれを行うこの方法を見つけました:
fsutil.exe file setCaseSensitiveInfo “C:my folder” enable
問題は、この関数が再帰的ではないことです。
ケース感度フラグは、適用する特定のフォルダにのみ影響します。そのフォルダのサブフォルダに自動的に継承されるわけではありません。
だから私は再帰的にすべてのフォルダとサブフォルダにこれを適用するpowershellスクリプトを構築しようとしています。
私は似たようなものをグーグルで試してみましたが、コマンドラインを変更するだけですが、コーレントキーワードが見つからないようです。これは、この種の例にを得た最も近いです。
正しいコード:
(Get-ChildItem -Recurse -Directory).FullName | ForEach-Object {fsutil.exe file setCaseSensitiveInfo $_ enable}
説明:
Get-ChildItem -Recurse -Directoryは(再帰的に)すべてのフォルダのリストを提供します。
フルパスを渡したいので、.FullName(またはより自明な| Select-Object -ExpandProperty FullName)を使ってアクセスすることができます。
次に、ForEach-Objectを使用してfsutil.exeを複数回実行します。現在のファイルのFullNameは、$_を使用してアクセスできます(これはForEach-Objectの現在のオブジェクトを表します)。
source