3

「プラグイン」という単語を含む「フルスクリーン」フォルダー内のすべてのファイルを再帰的にリストする簡単なスクリプトを作成しています。パスが長すぎて不必要なので、FileName の突起を取得することにしました。問題は、すべてのファイルが「index.xml」と呼ばれているため、get:「格納フォルダー + ファイル名」が非常に役立つことです。したがって、出力は次のようになります。

on\index.xml
off\index.xml

それ以外の:

C:\this\is\a\very\long\path\fullscreen\on\index.xml
C:\this\is\a\very\long\path\fullscreen\off\index.xml

これは私が持っているものです:

dir .\fullscreen | sls plugin | foreach { write-host $($_).path }

このエラーが発生しています:

null であるため、引数をパラメータ 'Path' にバインドできません。

4

2 に答える 2

1

クラスのDirectoryプロパティはFileInfo、親ディレクトリを示します。そのベースを取得して、ファイルの名前と結合するだけです。アイテムを FileInfo オブジェクトに戻す追加の foreach に注意してください。

dir .\fullscreen | sls plugin | foreach{ get-item $_.Path } | foreach { write-output (join-path $_.Directory.BaseName $_.Name)}

余分なパイプラインを避けたい場合:

dir .\fullscreen | sls plugin | foreach{ $file = get-item $_.Path; write-output (join-path $file.Directory.BaseName $file.Name)}
于 2013-07-15T18:13:56.077 に答える