一個很好的艱難的一個爲你更換所有在指定日期範圍內的文件字符串。我試圖在一堆文件中查找並替換給定的字符串。這些文件有文件名中的日期戳即YYYY_MM_DD_file.txt
查找和按文件名
我希望在這些文件的日期範圍內搜索和替換這些文件,然後替換我定義的字符串,我不能使用日期修改作爲日期範圍,我必須依賴在文件名的戳記上。
到目前爲止,我設置的WPF文本字段我的日期範圍:
$Filename = $Filenamebox.text
$startdate = [datetime] $startdatetext.text
$enddate = [datetime] $enddatetext.Text
$NewFilenamereal = $Newfilename.Text
$array =
do {
$startdate.ToString('yyyy_MM_dd*')
$startdate = $startdate.AddDays(1)
}
until ($startdate -gt [datetime] $enddate)
$files1 = $array | foreach-object {"C:\Users\michael.lawton\Desktop\KGB\Test folder\$_"}
write-host $files1
然後我開始使用$files1
陣列我已經爲日期範圍的文件搜索掩碼創建的子項,並找到所有比賽。在一個變量存儲這個與新的字符串$Newfilenamereal
替換字符串$filename
。
$Matches1 = get-childitem $files1 | select-string $Filename | foreach-object {$_ -replace $Filename,$Newfilenamereal} | out-string
write-host $Matches1
但是我不知道如何來覆蓋什麼已經發現並在$Matches1
變量的原始文件替換。我曾嘗試set-content
,但是這隻會要麼刪除的日期標記的文件我的一切都還是無法理解$files1
數組作爲文件路徑。
所以我的問題給你可愛的人是怎麼做的我寫的是我的環境已經取代實際的文件嗎?
你要重命名的文件嗎? –
沒有,只有在匹配的文件 – user6705306