2017-08-03 1 views
0

出力を適切な列で操作して、後でExcelでファイルを開くことができます。基本的には、出力をコピーして区切りオプション(インポートウィザード)でExcelに貼り付けます。Select Stringオブジェクトの出力を操作する

SOURCEFILE:
https://rent.com

コード

[email protected]("rent.com") 
$files=Get-ChildItem "D:\test\*.*" -Recurse 
$files |Select-String -Pattern $pat |Out-File "D:\output\result.txt" 

A.TXTしかし、私が得る出力がこれです:

ように私は、出力を操作するにはどうすればよい
D:\test\a.txt:1:https://rent.com 

私は得る:

D:\test\a.txt~1~https://rent.com 

次に、〜をデリミタとして使用してExcelにインポートすることができます。

ありがとうございました!

答えて

0

方法について:

[email protected]("rent.com") 
$files=Get-ChildItem "D:\test*.*" -Recurse 
$files | 
    Select-String -Pattern $pat | 
    %{ "{0}~{1}~{2}" -f $_.Path, $_.LineNumber, $_.Line } | 
    Out-File "D:\output\result.txt" 

Try it online

参考文献:

Select-String Outputs

+0

おかげでダグが、問題は、テキストファイル自体に ':'を付けることができることです。 上記のコマンドは D〜\ test \ a.txt〜1〜https〜// rent.comになります – HungryProgrammer

+0

私はそれに応じて私の答えを更新しました... –

+0

こんにちはダグ、$ _。私はライン全体ではなく、ちょうどマッチした値を得ることができました。出力はD:\ test \ a.txt:1:rent.comで、一致するパラメータを表示しようとします。 – HungryProgrammer

0

その他の方法:

[email protected]("tec") 
$files=Get-ChildItem "D:\test*.*" -Recurse -file 
$files | Select-String -Pattern $pat | %{$_.ToString().Replace(':', '~')} | Out-File "D:\output\result.txt" 
+0

私は最初は同じ解決策がありましたが、ファイル名と結果の両方に '〜'を置き換えてはいけない ':' –

関連する問題