2017-06-12 90 views
2

環顧站點,似乎無法爲自己找到一些答案。Powershell:根據文件內的字符串將文件從一個目錄移動到另一個目錄

我正在尋找一個腳本,這將使我能夠根據文件內的內容將文件從一個目標移動到另一個目標。

要進入具體細節

源目標 - 五:\ SW \ FromSite 複製到目標 - 五:\ SW \ ToSW 文件類型 - .TXT 字符串 - 測試

理想的情況下我也想如僅限具有以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

所以下面的放在一起,它的運行,但似乎沒有任何即將發生? (對不起,格式化,這個網站在迴應評論時,我的腦袋破碎了,返回時保存評論而不是開始一個新行 $ DestDir =「V:\ SW \ FromSite」 $ SrcDir =「V:\ SW \ ToSW」 $ SearchString =「test」 $ files = gci $ SrcDir -filter 7 * .txt $ files |%{ if((select-string -path $ _ .FullName -pattern $ SearchString)-ne $ null) { 布展項目-path $ _。全名-dest $ DESTDIR }} 嘗試 – Daniel

+0

增加了一些更多的產出。 也許寫主機$文件,以確保您的過濾器正在工作,也許增加一個直寫IF語句內的主線。 –

1

所以做了一些更多的插科打諢和下面的工作完全是我需要

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

感謝所有幫助

相關問題