2017-04-03 47 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