簡體   English   中英

Powershell:以遞歸方式將文件夾中的所有非目錄子項都轉儲到特定路徑中

[英]Powershell: recursively dumping all non-directory child items in a folder into a specific path

我試圖使一個簡單的桌面清除程序自動化,並且嘗試編寫一個命令來還原程序的所有操作。 當前,我的程序將桌面上的所有內容分類到一個名為“ media”的文件夾(位於桌面上)中,該文件夾包含每個類別的項目的進一步子目錄。 實質上,

Desktop >> Media >> {bunch of dirs for item categories}

因此,我正在嘗試編寫一個命令,該命令將從子目錄中獲取所有已排序的項目,然后將其轉儲回桌面,而不移動文件夾本身。 到目前為止,我已經嘗試過:

dir -attributes !directory -recurse | foreach-object {move-item $_ -destination "$home/desktop"}

這就產生了powershell試圖移動其ACTUAL路徑類似於以下內容的對象的問題:

C:\\________\\desktop\\media\\images\\sample.jpg

使用此路徑:

C:\\________\\desktop\\media\\sample.jpg

因為我正在從“ media”文件夾執行命令,導致出現如下錯誤:

move-item : Cannot find path 'C:\\Users\\bhiggins\\desktop\\media\\Basic Engineering Circuit Analy - J. David Irwin.pdf' because it does not exist. At line:1 char:55 + ... -recurse | foreach-object {move-item $_ -destination "$home/desktop"} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\\Users\\bhiggi...David Irwin.pdf:String) [Move-Item], ItemNotFou ndException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.MoveItemCommand

那么,如何在保持執行位置為“媒體”的同時修改命令,以將正確的路徑傳遞給move-item指令呢?

希望我在這里了解您的問題。 您確實不需要foreach-Object來執行此操作。 這將占用源文件夾中的所有內容,並將其移動到目標文件夾(在您的情況下為台式機)

Get-ChildItem -Path $path -recurse | Move-Item -Destination $destination

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM