どうも、初めてお世話になります。
前提・実現したいこと
PowerShellのモジュールディレクトリに配置したスクリプトのうち、フォルダ名とBaseNameが一致する有効なもののみを列挙するPowerShellスクリプトを作成しています。
尚、スクリプトファイルのディレクトリにつきましては、System32とProgram FilesとユーザーのDocumentsの3か所にあります、WindowsPowerShell\Modulesの下にUserScriptsフォルダを作成し、更にその下にBaseNameと同一名のフォルダを作成し、スクリプトファイルを配置しています。
発生している問題・エラーメッセージ
抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。
該当のソースコード
Get-ChildItem -Path @('C:\Windows\System32\WindowsPowerShell\v1.0\Modules\UserScripts', 'C:\Program Files\WindowsPowerShell\Modules\UserScripts', "$Env:USERPROFILE\Documents\WindowsPowerShell\Modules\UserScripts") -Recurse | Where-Object {$_.FullName -match '([^]+)$1.psm1$'}
試したこと
正規表現記述の中で$1を使用しても無効となるのか?と疑い、正規表現をやめて$.FullName -like "*$.BaseName$_.Name"としましたが、同様にスルーされてしまいました。
Get-ChildItem ~ -Recurseのみをコピペしてコンソールウインドウに貼り付けて実行した結果では、Where-Objectに渡す前までは有効であると理解できます。
補足情報(FW/ツールのバージョンなど)
OSはWindows 10 Proです。
PowerShellのバージョンは5.1です。
管理者権限にて実行しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。