2017-06-12 6 views
2

サイトを見て、自分のためにいくつかの答えを見つけることができないようです。Powershell:ファイル内の文字列に基づいて、1つのディレクトリから別のディレクトリにファイルを移動します。

私は、ファイル内のコンテンツに基づいて、ある目的地から別の目的地にファイルを移動することができるスクリプトを書こうとしています。先に\ SW \ FromSite コピー - V:\ SW \ TOSW のFileType - .txtの 文字列 - テスト

理想的には私も思いますV - 細目

ソース宛先に入るために

のみには、7で始まるスクリプト検索ファイルがあります。これはリージョンの一意の識別子です。

私の髪を少し引き出します。

私は以下を使用していました。これはエラーなく実行されますが、何もしません。

$DestDir = "V:\SW\FromSite" 
$SrcDir = "V:\SW\ToSW" 
$SearchString = "test" 

gci $SrcDir -filter 7*.txt | select-string $SearchString | select path | 
move-item -dest $DestDir -whatif 

答えて

2

ここでは、私がやろうとしていることはありますが、もっと効率的なやり方があると確信しています。

$files = gci $SrcDir -filter 7*.txt 
$files | %{ 
    if ((select-string -path $_.FullName -pattern $SearchString) -ne $null) { 
     move-item -path $_.FullName -dest $DestDir 
    } 
} 
+0

ため

get-childitem "<SourceFolder>" -filter 7*.txt - recurse | select-string -list -pattern "test" | move -dest "<DestinationFolder>" 

おかげだから、下記一緒にランニングを置くが、何も思わなかっ必要なもののために完璧に働いています発生する? (フォーマットすると申し訳ありませんが、このサイトはコメントに応答するときに私の頭を壊してしまいます。返信は新しい行を始める代わりにコメントを保存します) $ DestDir = "V:\ SW \ FromSite" $ SrcDir = "V:\ SW \ ToSW" $ SearchString = "test" $ files = gci $ SrcDir -filter 7 * .txt $ファイル|%{ if((select-string -path $ _。FullName -pattern $ SearchString)-ne $ null) { 移動項目$ _。FullNameを-dest $ DESTDIR -path}いくつかのより多くの出力を加算 } – Daniel

+0

てみてください。 おそらく、あなたのフィルタが動作していることを確認するために、$ファイルにホストを書き、多分書き込みを追加IF文内のホスト行。 –

1

ので、いくつかは、よりいじり、以下でしたが、私はすべてのヘルプ

関連する問題