teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

11

タイトルに合わせてコード内の正規表現記述も修正しました。

2021/04/04 05:12

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  ### 発生している問題・エラーメッセージ
7
7
  抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。
8
8
  ### 該当のソースコード
9
- 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.ps[a-z]*1$'}
9
+ 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$'}
10
10
  ### 試したこと
11
11
  正規表現記述の中で$1を使用しても無効となるのか?と疑い、正規表現をやめて$_.FullName -like "*$_.BaseName$_.Name"としましたが、同様にスルーされてしまいました。
12
12
  Get-ChildItem ~ -Recurseのみをコピペしてコンソールウインドウに貼り付けて実行した結果では、Where-Objectに渡す前までは有効であると理解できます。

10

タイトルを修正しました。

2021/04/04 05:12

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- PowerShellにて、モジュールディレクトリ内のスクリプトファイル(.ps1)の列挙をするには?
1
+ PowerShellにて、モジュールディレクトリ内のスクリプトファイル(.psm1)の列挙をするためのフィルタが上手く行かない。
body CHANGED
File without changes

9

タグを追加しました。

2021/04/04 05:09

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
File without changes

8

補足情報にOS名を付け加えました。

2021/04/04 04:07

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -11,5 +11,6 @@
11
11
  正規表現記述の中で$1を使用しても無効となるのか?と疑い、正規表現をやめて$_.FullName -like "*$_.BaseName$_.Name"としましたが、同様にスルーされてしまいました。
12
12
  Get-ChildItem ~ -Recurseのみをコピペしてコンソールウインドウに貼り付けて実行した結果では、Where-Objectに渡す前までは有効であると理解できます。
13
13
  ### 補足情報(FW/ツールのバージョンなど)
14
+ OSはWindows 10 Proです。
14
15
  PowerShellのバージョンは5.1です。
15
16
  管理者権限にて実行しました。

7

前提・実現したいことの一部で文言の不足を補正しました。

2021/04/04 01:55

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  どうも、初めてお世話になります。
2
2
 
3
3
  ### 前提・実現したいこと
4
- PowerShellのモジュールディレクトリに配置したスクリプトのうち、フォルダ名と一致する有効なもののみを列挙するPowerShellスクリプトを作成しています。
4
+ PowerShellのモジュールディレクトリに配置したスクリプトのうち、フォルダ名とBaseNameが一致する有効なもののみを列挙するPowerShellスクリプトを作成しています。
5
5
  尚、スクリプトファイルのディレクトリにつきましては、System32とProgram FilesとユーザーのDocumentsの3か所にあります、WindowsPowerShell\Modulesの下にUserScriptsフォルダを作成し、更にその下にBaseNameと同一名のフォルダを作成し、スクリプトファイルを配置しています。
6
6
  ### 発生している問題・エラーメッセージ
7
7
  抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。

6

試したことを更に追記しました。

2021/04/04 01:52

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  ### 該当のソースコード
9
9
  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.ps[a-z]*1$'}
10
10
  ### 試したこと
11
- 正規表現をやめて$_.FullName -like "*$_.BaseName$_.Name"としましたが、同様にスルーされてしまいました。
11
+ 正規表現記述の中で$1使用しても無効となるのか?と疑い、正規表現をやめて$_.FullName -like "*$_.BaseName$_.Name"としましたが、同様にスルーされてしまいました。
12
12
  Get-ChildItem ~ -Recurseのみをコピペしてコンソールウインドウに貼り付けて実行した結果では、Where-Objectに渡す前までは有効であると理解できます。
13
13
  ### 補足情報(FW/ツールのバージョンなど)
14
14
  PowerShellのバージョンは5.1です。

5

試したことを追記しました。

2021/04/04 01:48

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,8 @@
8
8
  ### 該当のソースコード
9
9
  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.ps[a-z]*1$'}
10
10
  ### 試したこと
11
- 正規表現をやめて、$_.FullName -like "*$_.BaseName$_.Name"としましたがスルーされてしまいま
11
+ 正規表現をやめて、$_.FullName -like "*$_.BaseName$_.Name"としましたが、同様にスルーされてしまいました
12
+ Get-ChildItem ~ -Recurseのみをコピペしてコンソールウインドウに貼り付けて実行した結果では、Where-Objectに渡す前までは有効であると理解できます。
12
13
  ### 補足情報(FW/ツールのバージョンなど)
13
14
  PowerShellのバージョンは5.1です。
14
15
  管理者権限にて実行しました。

4

スクリプトファイルの配置先ディレクトリについての説明を追加しました。

2021/04/04 01:42

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  ### 前提・実現したいこと
4
4
  PowerShellのモジュールディレクトリに配置したスクリプトのうち、フォルダ名と一致する有効なもののみを列挙するPowerShellスクリプトを作成しています。
5
+ 尚、スクリプトファイルのディレクトリにつきましては、System32とProgram FilesとユーザーのDocumentsの3か所にあります、WindowsPowerShell\Modulesの下にUserScriptsフォルダを作成し、更にその下にBaseNameと同一名のフォルダを作成し、スクリプトファイルを配置しています。
5
6
  ### 発生している問題・エラーメッセージ
6
7
  抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。
7
8
  ### 該当のソースコード

3

環境変数の誤りを訂正しました。

2021/04/04 01:28

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
  抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。
7
7
  ### 該当のソースコード
8
- Get-ChildItem -Path @('C:\Windows\System32\WindowsPowerShell\v1.0\Modules\UserScripts', 'C:\Program Files\WindowsPowerShell\Modules\UserScripts', "$_.USERNAME\Documents\WindowsPowerShell\Modules\UserScripts") -Recurse | Where-Object {$_.FullName -match '\([^\]+)\$1.ps[a-z]*1$'}
8
+ 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.ps[a-z]*1$'}
9
9
  ### 試したこと
10
10
  正規表現をやめて、$_.FullName -like "*$_.BaseName$_.Name"としましたがスルーされてしまいます。
11
11
  ### 補足情報(FW/ツールのバージョンなど)

2

ローカル環境のパスの一部を伏せました。

2021/04/04 01:16

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
  抽出するための正規表現が上手く行っていないようで、何も列挙されずに終わってしまいます。
7
7
  ### 該当のソースコード
8
- Get-ChildItem -Path @('C:\Windows\System32\WindowsPowerShell\v1.0\Modules\UserScripts', 'C:\Program Files\WindowsPowerShell\Modules\UserScripts', 'C:\Users\Aristocrat-001\Documents\WindowsPowerShell\Modules\UserScripts') -Recurse | Where-Object {$_.FullName -match '\([^\]+)\$1.ps[a-z]*1$'}
8
+ Get-ChildItem -Path @('C:\Windows\System32\WindowsPowerShell\v1.0\Modules\UserScripts', 'C:\Program Files\WindowsPowerShell\Modules\UserScripts', "$_.USERNAME\Documents\WindowsPowerShell\Modules\UserScripts") -Recurse | Where-Object {$_.FullName -match '\([^\]+)\$1.ps[a-z]*1$'}
9
9
  ### 試したこと
10
10
  正規表現をやめて、$_.FullName -like "*$_.BaseName$_.Name"としましたがスルーされてしまいます。
11
11
  ### 補足情報(FW/ツールのバージョンなど)

1

タイプミス修正

2021/04/04 01:15

投稿

Endless-Loop
Endless-Loop

スコア6

title CHANGED
File without changes
body CHANGED
@@ -9,5 +9,5 @@
9
9
  ### 試したこと
10
10
  正規表現をやめて、$_.FullName -like "*$_.BaseName$_.Name"としましたがスルーされてしまいます。
11
11
  ### 補足情報(FW/ツールのバージョンなど)
12
- PowerSehllのバージョンは5.1です。
12
+ PowerShellのバージョンは5.1です。
13
13
  管理者権限にて実行しました。