[解決済み] Powershell Get-ChildItem -Filter は、同じ値でWhere句とは異なる動作をします。
質問
サーバーにMyFolderというフォルダがあります。 MyFolder.1、MyFolder.2、MyFolder.3などという追加のフォルダーがあります。
実行すると
gci C:\Sample | ? { $_.Name -like "MyFolder.*" }
期待通りの出力が得られます。
Directory: C:\Sample
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 16/10/2012 12:16 MyFolder.1
d---- 16/10/2012 12:16 MyFolder.2
d---- 16/10/2012 12:16 MyFolder.3
しかし、私が実行すると。
gci C:\Sample -Filter "MyFolder.*"
得ることができる。
Directory: C:\Sample
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 16/10/2012 12:16 MyFolder
d---- 16/10/2012 12:16 MyFolder.1
d---- 16/10/2012 12:16 MyFolder.2
d---- 16/10/2012 12:16 MyFolder.3
私は、どのように マイフォルダ が出力に含まれます。 出力は同じだと思うのですが。
は、その オンラインヘルプ は、フィルタの構文がプロバイダに基づいていることを強調していますが、この例で使用されているプロバイダが何であるかは不明です。
私は基本的な知識を失っているのでしょうか? 正規表現の文字列をフィルターに渡そうとしたのですが、例えば次のようなものです。
"MyFolder\.*"
が、これは単に何も返しません。 私は何か単純なことを見逃しているのでしょう。
Powershellバージョン2を動かしています。
解決方法
ワイルドカードのマッチングの違いを指摘してくれたRoman Kuzminに感謝します。 以下は期待通りの出力です。
gci C:\Sample\MyFolder.*
今後、コードのノイズを減らすために、この構文を簡単に使っていこうと思います。
解決方法は?
その
Filter
は、PowerShell ワイルドカードよりも CMD ワイルドカードを使用します。CMD ワイルドカードは、いくつかのエッジケース(主に歴史的なもの)において、おかしく、直感的ではありません。ここに興味深い説明があります。
https://devblogs.microsoft.com/oldnewthing/20071217-00/?p=24143
もうひとつ、気をつけなければならないことがあります。
ls -Filter *.txt
のようなファイルを取得します。
*.txt*
PowerShell の意味でのファイル、つまり拡張子が
開始
で
テキスト
. これは、シナリオによっては予期しない、非常に不愉快なことかもしれません :).
関連
-
[解決済み] Connect-VIServer は、渡された資格情報では動作しないが、統合された認証では動作する。
-
[解決済み] PowerShell起動時に「動的操作はhomogenous appdomainでしか実行できない」エラーが発生する。
-
[解決済み] Get-ChildItem -force で My Documents フォルダとその他の接続ポイントに "Access Denied" を報告する。
-
[解決済み] PowerShellにおけるセット(データ構造)
-
[解決済み] Powershell - 空のパイプ要素は許可されません。
-
[解決済み] PowerShellでディレクトリを変更する
-
[解決済み] PowerShellを使用してSFTPにファイルをアップロードする
-
[解決済み] Join-Pathを使って、2つ以上の文字列をファイルパスに結合するにはどうすればよいですか?
-
[解決済み] powershell内でキーストロークを実行する方法は?
-
[解決済み] PowerShellスクリプトから終了コードを返す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】'<'演算子は将来の使用のために予約されている
-
[解決済み] PowerShellで"%"(パーセント)は何をするのですか?
-
[解決済み] "get-wmiobject win32_process -computername" でエラー "Access denied , code 0x80070005" が発生する。
-
[解決済み] Powershell - 空のパイプ要素は許可されません。
-
[解決済み] Powershell New-ScheduledTaskTrigger -RepetitionIntervalを使った反復タスクの実行
-
[解決済み] PowerShellでディレクトリを変更する
-
[解決済み] Windows PowerShellでファイルが存在するかどうかをチェックする?
-
[解決済み] Get-MSolUserのフィルタリング方法
-
[解決済み] Install-Module : 'Install-Module' という用語は、コマンドレット名として認識されません。
-
[解決済み] PowerShellを使用してFTPでファイルをアップロードする