0

これは悪い冗談のように聞こえるかもしれませんが、どうやら MS の天才は非常に複雑にすることができないようです -exclude gci パラメータの作業。「天才的な」設計により、パス全体ではなく、ファイルに対してのみ機能します。それで、それを機能させる方法。たとえば、パスに「Windows」部分文字列が含まれるすべてのファイルを除外する方法は? ナイーブ
gci -exclude "*Windows*" -rec
は機能しません

編集:グーグル/これを理解した:

 | where {$_.DirectoryName -notmatch ".*abcdef.*" }

誰かがより良い解決策を知っている場合は、共有してください。そうでない場合は、質問を閉じます。

4

1 に答える 1

1

解決策は次のとおりです。

 gci ./ |Where{ $_.PSPath -notmatch ".*Windows.*"}

ところで、このような問題の解決策を推測するのに役立つことは、現在のオブジェクトが持つメソッドを知ることです。そのために Get-Member を使用しました。出力例:

PS C:\Users\jh> gci ./ | Get-Member


       TypeName: System.IO.DirectoryInfo

    Name                      MemberType     Definition
    ----                      ----------     ----------
    Mode                      CodeProperty   System.String Mode{get=Mode;}
    Create                    Method         void Create(), void Create(System.Security.AccessControl.DirectorySecurity ...
    CreateObjRef              Method         System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
    CreateSubdirectory        Method         System.IO.DirectoryInfo CreateSubdirectory(string path), System.IO.Director...
    Delete                    Method         void Delete(), void Delete(bool recursive)
    EnumerateDirectories      Method         System.Collections.Generic.IEnumerable[System.IO.DirectoryInfo] EnumerateDi...
    EnumerateFiles            Method         System.Collections.Generic.IEnumerable[System.IO.FileInfo] EnumerateFiles()...
    EnumerateFileSystemInfos  Method         System.Collections.Generic.IEnumerable[System.IO.FileSystemInfo] EnumerateF...
    Equals                    Method         bool Equals(System.Object obj)
    GetAccessControl          Method         System.Security.AccessControl.DirectorySecurity GetAccessControl(), System....
    GetDirectories            Method         System.IO.DirectoryInfo[] GetDirectories(), System.IO.DirectoryInfo[] GetDi...
    GetFiles                  Method         System.IO.FileInfo[] GetFiles(string searchPattern), System.IO.FileInfo[] G...
    GetFileSystemInfos        Method         System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern), System...
    GetHashCode               Method         int GetHashCode()
    GetLifetimeService        Method         System.Object GetLifetimeService()
    GetObjectData             Method         void GetObjectData(System.Runtime.Serialization.SerializationInfo info, Sys...
    GetType                   Method         type GetType()
    InitializeLifetimeService Method         System.Object InitializeLifetimeService()
    MoveTo                    Method         void MoveTo(string destDirName)
    Refresh                   Method         void Refresh()
    SetAccessControl          Method         void SetAccessControl(System.Security.AccessControl.DirectorySecurity direc...
    ToString                  Method         string ToString()
    PSChildName               NoteProperty   System.String PSChildName=Contacts
    PSDrive                   NoteProperty   System.Management.Automation.PSDriveInfo PSDrive=C
    PSIsContainer             NoteProperty   System.Boolean PSIsContainer=True
    PSParentPath              NoteProperty   System.String PSParentPath=Microsoft.PowerShell.Core\FileSystem::C:\Users\jh
    PSPath                    NoteProperty   System.String PSPath=Microsoft.PowerShell.Core\FileSystem::C:\Users\jh\Cont...
    PSProvider                NoteProperty   System.Management.Automation.ProviderInfo PSProvider=Microsoft.PowerShell.C...
    Attributes                Property       System.IO.FileAttributes Attributes {get;set;}
    CreationTime              Property       datetime CreationTime {get;set;}
    CreationTimeUtc           Property       datetime CreationTimeUtc {get;set;}
    Exists                    Property       bool Exists {get;}
    Extension                 Property       string Extension {get;}
    FullName                  Property       string FullName {get;}
    LastAccessTime            Property       datetime LastAccessTime {get;set;}
    LastAccessTimeUtc         Property       datetime LastAccessTimeUtc {get;set;}
    LastWriteTime             Property       datetime LastWriteTime {get;set;}
    LastWriteTimeUtc          Property       datetime LastWriteTimeUtc {get;set;}
    Name                      Property       string Name {get;}
    Parent                    Property       System.IO.DirectoryInfo Parent {get;}
    Root                      Property       System.IO.DirectoryInfo Root {get;}
    BaseName                  ScriptProperty System.Object BaseName {get=$this.Name;}
于 2012-07-28T23:46:32.527 に答える