2017-05-12 1 views
0

PowerShellを使用して特定の条件を満たすファイルが見つかると、ディレクトリをナビゲートして現在のファイルパスを記録しています。 、私は、コマンドラインを使用していたのPowerShellに切り替える前にPowerShellのStart-Transcriptをよりコンパクトにする

Start-Transcript -path C:\test.txt 
Get-ChildItem -recurse | Where-Object {$_.Name -match "2\d\d"} 
Stop-Transcript 

拾っ

dir *2??*.doc /b /s /A:-D > C:\test.txt

:私の例では、2から始まり、それ以下2桁を持つファイルです私が欲しくないものの束。 PowerShellの転写機能がはるかに大きい

C:\folder1\234.doc 
C:\folder1\folder2\235.doc 

Start time: 20170512141758 
... 
********************** 
Transcript started, output file is C:\test.txt 


    Directory: C:\folder1 


Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----  12-May-17  14:07    0 234.doc 


    Directory: C:\folder1\folder2 


Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----  12-May-17  14:05    0 235.doc 
********************** 
Windows PowerShell transcript end 
End time: 20170512141758 
********************** 

しかし、このコマンドの利点は、私のテキストファイルを1行に1つずつファイルのファイルパス全体で、コンパクトなことでしたPowerShellのトランスクリプトをコマンドラインのトランスクリプトと同じくらいコンパクトにするにはどうすればよいですか?あなたが代わりにStart-Transcriptを使用してのOut-Fileに直接出力している

答えて

2

パイプ:

Get-ChildItem -Recurse | Where-Object {$_.Name -match "2\d\d"} |Select -Expand FullName |Out-File C:\test.txt 

SelectSelect-Objectの別名)コマンドWhere-Objectは必ず我々は唯一の出力ファイルに完全なファイルパスを取得

+0

落札後うわー、雷の高速応答のおかげで!しかし、-Expandパラメータは何をしますか? – gsamerica

+0

Get-Help Select-Object -Full – lit

関連する問題