2017-12-14 6 views
0

を「00」を追加することができますPowerShellのスクリプトが必要です。私は例をtxtfilesに特定の単語を探し、行の先頭に

bank of america         Page 
chase bank          count 
alli bank          Page 

出力:

00 bank of america        Page 
    chase bank          count 
00 ally bank          Page 

PowerShellスクリプトを見てする必要が単語 "page"に対して "00"を追加します。

スクリプトが動作していて、結果がcmd出力ウィンドウに表示されますが、ユーザーフォルダ内の.txtファイルは更新されません。

powershell -command "foreach($ln in cat 'c:\users*.txt'){if($ln -match 'page'){write-host '00'$ln}}" 

私はc:\users*.txtファイルを更新できるようにするスクリプトに追加する必要があるものを教えてください。私はusersフォルダ内に複数のtxtファイルを持っているので、スクリプトを実行すると、それらはすべてユーザフォルダ内で更新される必要がありますが、スクリプトではそれは起こっていません。

+0

StackOverflowは、既存のプログラミングコードを修正する手助けをしています。 Qを編集してサンプルの入出力を表示し、コードを試してみてください。申し訳ありませんが、チュートリアル、リサーチ、ツール、推奨事項、図書館、コードのリクエストは話題にはなりません。 *** ***を読んでください。https://stackoverflow.com/help/on-topic、https://stackoverflow.com/help/how-to-ask、https://stackoverflow.com/help/dont- https://stackoverflow.com/help/mcveに問い合わせて、ここにQを投稿する前に[ツアー](https://stackoverflow.com/tour)に行ってください。幸運 – shellter

+0

私はすでにコードを書いており、元のファイルを更新していないだけです。 – Jhon

答えて

0

文字列の置換を行っていますが、処理後に元のファイルの内容を設定していません。それぞれのファイルを個別に取得し、内容を設定します。

powershell -command "(Get-ChildItem C:\users*.txt).FullName | ForEach-Object {(Get-Content $_) | ForEach-Object {if($_ -match 'page') { return '00' + $_} else {return $_}} | Set-Content $_ }" 
関連する問題