2012-07-11 49 views
0

这是我有,但不断收到以下错误。我正在使用Windows 7家庭高级版64位。我需要将笔记本电脑硬盘上的所有内容复制到桌面K:\ Mybackup文件夹中。powershell复制项目从硬盘驱动器到另一个硬盘的所有文件

$source = "M:\" 
$dest = "K:\MyBackup" 
Copy-item $source $dest -recurse 

PS C:>复制项$ $源DEST 拷贝项目:不支持给定的路径的格式。 在行:1个字符:10 +复制项< < < < $源$ DEST + CategoryInfo:InvalidOperation:(K:\网关\ M:\:字符串)[复印-项目],NotSupportedException异常 + FullyQualifiedErrorId: ItemExistsNotSupportedError,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:>拷贝项目

小命令拷贝项目在命令管道位置1个 供应值以下参数: 路径[0]:

+0

我将$ source更改为$ source =“M:\ *”,现在不会抱怨。 – torres 2012-07-11 02:27:00

+0

我现在正在M:\ Users目录中拒绝访问。如何避免这种情况?这是我自己的笔记本硬盘。我需要检索所有文件,然后才能将其发回给戴尔以进行更换(在保修期内)。请建议。 – torres 2012-07-11 02:55:51

+0

如果这是使用复制项目的练习,那么这个问题是确定的。如果你的目标是递归地将一个目录从一个地方复制到另一个地方,你应该看看robocopy。 – OldFart 2012-07-11 15:13:32

回答

1
function Copy-Directories 
{ 
    param (
     [parameter(Mandatory = $true)] [string] $source, 
     [parameter(Mandatory = $true)] [string] $destination   
    ) 

    try 
    { 
     Get-ChildItem -Path $source -Recurse -Force | 
      Where-Object { $_.psIsContainer } | 
      ForEach-Object { $_.FullName -replace [regex]::Escape($source), $destination } | 
      ForEach-Object { $null = New-Item -ItemType Container -Path $_ } 

     Get-ChildItem -Path $source -Recurse -Force | 
      Where-Object { -not $_.psIsContainer } | 
      Copy-Item -Force -Destination { $_.FullName -replace [regex]::Escape($source), $destination } 
    } 

    catch 
    { 
     Write-Host "$_" 
    } 
} 

$source = "M:\" 
$dest = "K:\MyBackup" 

Copy-Directories $source $dest