2017-04-03 98 views
2

我有磁盤D的文件和目錄。我想將所有文件和目錄(包括磁盤D的根目錄)移動到保存樹的新文件夾中。如何將所有文件和目錄從磁盤移動到該磁盤上的文件夾?

  1. 例如,我有文件D:\1.txt。我想把它移到​​
  2. 第二個例子。我有檔案D:\1\1\1.txt。我想將其移至​​

正如您所見,我想將磁盤D的所有內容移至文件夾D:\new_folder\

我試過robocopy,但是它不能從磁盤根目錄移動。

+1

你有什麼嘗試?請分享代碼。這似乎不是一個問題。獲得childitem -recurse與移動項目應該這樣做 –

回答

1

沒有測試:

for /d %%# in (D:\*) do (
    xcopy "%%#" "D:\new_folder\%%~nx#" /i 
) 

for %%# in (D:\*) do (
    copy /Y "%%#" "D:\new_folder\" 
) 

同樣沒有經過測試(使用PowerShell):

Get-ChildItem -Path "D:\*" | ForEach-Object {if((Get-Item $_) -is [System.IO.DirectoryInfo]){Copy-Item "$_.FullName" "D:\new_folder" -recurse } else {Copy-Item "$_.FullName" "D:\new_folder"}} 
+0

謝謝。但是我們可以通過PowerShell來實現嗎? – malcolm

+0

@malcolm - 檢查我的更新。 – npocmaka

2

這將複製所有文件和文件夾保存的文件夾結構:

$sourcePath = "D:\" 
$destPath = "D:\new_folder\" 

Get-ChildItem $sourcePath -Recurse | Foreach-Object { 
    $destDir = Split-Path ($_.FullName -Replace [regex]::Escape($sourcePath), $destPath) 
    if (!(Test-Path $destDir)) { 
     New-Item -ItemType directory $destDir | Out-Null 
    } 
    Copy-Item $_.FullName -Destination $destDir 
} 
2

爲什麼不簡單使用robocopy com普通話?

robocopy "D:\." "D:\new_folder" /E /MOVE /XD "D:\new_folder" 

注意,你不能指定根"D:\",因爲反斜槓轉義右引號。要解決該問題,請指定"D:\.""D:\\",其實際指向D:\

+0

不客氣!請考慮接受最能幫助你的答案。看看[this](http://stackoverflow.com/help/accepted-answer)爲什麼這很重要!謝謝! – aschipfl