簡體   English   中英

Powershell 將子文件夾中的所有文件和子文件夾移動到當前目錄

[英]Powershell move all files and subfolders in a child folder to CURRENT directory

我試過了,沒有錯誤,但沒有文件被修改:

Get-ChildItem -Path "subfolder\" -Recurse |  Move-Item -Destination "."

更新:我不想要絕對但相對的路徑

你的回答會是這樣的:

Move-Item -Path 'subfolder\*' -Destination . -Force

這是相對的,也會處理文件夾中的所有隱藏文件。

Set-Location 'C:\Users\username\Desktop\newFolder';
Get-ChildItem -Path 'C:\Users\username\Desktop\oldFolder\*.txt' -Recurse -File | Move-Item -Destination $(get-location).Path;

這似乎是一個瘋狂的嘗試,老實說這個問題並不像我想要的那么全面。 例如:我不確定該文件夾是只有 1 級深還是可以從當前目錄進一步向下。 無論如何,我得到了一些似乎基本上可以通過不打擾遞歸來工作的東西:

$SubFolder = 'YourFolderName'
$SubFolder = Get-Item .\$SubFolder

Get-ChildItem $SubFolder |
ForEach-Object{
    $Destination = $_.FullName -Replace "$($SubFolder.FullName.Replace('\','\\'))", ".\"
    $NewParent   = $Destination -Replace $_.Name 

    Move-Item $_.FullName -Destination $NewParent    
}

我認為這里的訣竅是你必須移動到父母的父母,等等,或者有多少級別的備份/備份。 因此,使用當前目錄語法.\找出新父級應該是什么。 一旦你有了它,你就可以將所有東西從第一層移到不使用遞歸的地方。 Move-Item在它知道要移動整個文件夾的文件夾上,而在子文件夾本身中找到的文件顯然會移動到新的正確父級。

我有另一個確實使用遞歸的工作版本,但這似乎更簡潔,令我驚訝的是這似乎有效。 但是,我對此並不感到興奮。

暫無
暫無

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

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