我試圖將子檔案夾中的png影像移動到它們所在的檔案夾中的一個子檔案夾。
主檔案夾名為 "stuff",影像位于 "stuff "主檔案夾中不同名稱的子檔案夾中,每個子檔案夾中都有一個名為 "Oneshot "的檔案夾,我試圖將這些位于M:/Stuff/FolderExample/的影像移動到M:/Stuff/FolderExample/Oneshot/。 我目前使用的代碼是
Get-ChildItem -Path C:UseraDesktopstuff*. png -Recurse | Move-Item -Destination "$($_.FullName)Oneshot"
我怎樣才能使其發揮作用?我只是想學習Powershell,這樣我就可以把這個程序自動化,否則我需要手動重復這個程序數千次
。uj5u.com熱心網友回復:
使用一個腳本塊({...})作為-Destination的引數--這將允許你在引數系結時以$_的形式訪問當前的管道專案:
Get-ChildItem -Path C:UsersaDesktopstuff*. png -Recurse |Where-Object Directory -notlike *OneShot | Move-Item -Destination {"$($_.Directory.FullName)Oneshot"}。
管道中間的Where-Object命令將確保我們不會試圖移動已經在一個OneShot檔案夾中的圖片。
uj5u.com熱心網友回復:
Powershell不是移動檔案的最好主意。主要原因是你會遇到問題,萬一路徑變得太長>256個字符。我將使用 robocopy 來完成這樣的任務。它是當前每個windows版本的一部分。
robocopy M:Stuff/FolderExample/ M: /Stuff/FolderExample/Oneshot/ /MIR。
請記住,這段代碼也將洗掉M:/Stuff/FolderExample/Oneshot/中的所有內容,而不是M:/Stuff/FolderExample/中的。因此,請謹慎使用/MIR。
你仍然可以在ps1檔案中呼叫robocopy,并在其周圍包裹其他powerhell代碼,例如變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/326683.html
標籤:
下一篇:2107 課程筆記
