好的,你在正確的道路上整個RegEx標籤在這裏。我所做的是查找所有內容,直到最後一個反斜槓,然後捕獲5個數字,然後是所有不是反斜線的行,直到行尾,並且只返回捕獲的組。我將其設置爲變量$ItemNumber
,並將其用於目的地。我在ForEach循環中運行目標源文件夾中的所有內容。這裏是我結束了代碼:
ForEach($File in (GCI "X:\Property Files\*.PDF")){
$ItemNumber = $File.Fullname -replace ".+?\\(\d{5})[^\\]*$", "`$1"
move-item -path X:\"Property Files"\05165*.pdf -destination X:\"Property Files"\"* -- $ItemNumber"
}
你可以做到這一點通過管如果你想,像這樣:
GCI "X:\Property Files\*.PDF"|%{move-item -path X:\"Property Files"\05165*.pdf -destination X:\"Property Files"\"* -- $($_.Fullname -replace ".+?\\(\d{5})[^\\]*$", "`$1")"}
但是得到那種長,有的人真的不就像那麼長的一條線。
RegEx可以測試here,再加上它打破了一切。 (鏈接到regex101.com解釋)
非常感謝。它工作完美。我在使用*之前的5位數字前嘗試了幾個文件,然後讓它放到整個目錄中,當它測試出來作爲工作時,我只把星號放回去,然後回車。我的機器花了大約一個小時,但比以前快了很多。欣賞節省時間。 :-) – user3516394