初學者和我卡住了。將具有相同名稱的文件移動到匹配的命名文件夾
$filter= "Alive"
$source="D:\Users\Heather's\VendorScans\*"
Get-ChildItem -recurse | ?{ $_.PSIsContainer } |Select-Object fullname | Where-Object {$_.fullname -match $filter}
$destination= (Where-Object {$_.fullname -match $filter})
Copy-Item $source -destination $destination -recurse
最初的問題是將名稱爲「Alive」的文件移動到名爲「Alive」的文件夾中。 所以我試圖從一個目錄文件夾中的子文件夾複製文件,我將它移動到同一個驅動器上的雙嵌套子文件夾。所以D:\Users\Heather's\VendorScans\*
到D:\Users\Heather's\Vendors\AliveHospice
。等目的地將根據文件名是否匹配而改變。唯一的問題是,當我運行這個時,它將文件放在主目錄中,所以D:\Users\Heather's
而不是去全名路徑。如果有人能夠將我聯繫到一些有用的資源,或者將我推向正確的方向,我將不勝感激。仍然不知道如何訪問子文件夾或創建獨特的目的地。我需要一個循環嗎?
的'GET-ChildItem'行通過管道進行了大量過濾,但最終的結果並未保存,它離開管道,並且可能只是打印到屏幕上。 ('PSIsContainer'意味着它只包含文件夾,但是你討論想要文件?)。下一行'$ destination = ...'調用'沒有輸入的where-object',並保存空輸出 - 所以'Copy-Item'的目的地是空的。你可能確實需要一個或兩個循環,但我並不真正瞭解你在做什麼 - 你能舉一個例子說明哪個文件可能從哪裏移動到哪裏?目標文件名如何改變? – TessellatingHeckler
目標文件夾名稱/位置是否已知?這是一條固定的路徑嗎?相對於文件或源文件夾?一個完全任意的位置? –
來源始終是相同的(vendorscans文件夾),並且目的地與我選擇的過濾器有關。 (在我的最終版本中,我會得到類似於($ filter = Read-Host「請輸入過濾器名稱」)的腳本。腳本應讀取文件名並將文件移動或複製到同一D驅動器上的文件夾(可能是子文件夾)同樣的名字,也感謝你對Get-Childitem的解釋,我想我可以將它的結果保存到一個變量中! – Heather