2012-07-11 90 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