1

別の場所にディレクトリ構造が存在しない場合は、ディレクトリ構造を作成しようとしています。動作しますが、名前に角かっこが含まれているディレクトリでエラーが発生します。どうにかして逃げないといけないと思いますが、どうしたらいいのかわかりません。

スクリプトコード:

$source = "c:\data"
$destination = "c:\scrap\data"

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

2 に答える 2

5

これがより短い解決策です:

Copy-Item -Path $source -Destination $destination -Filter {$_.PSIsContainer} -Recurse -Force
于 2012-09-17T08:09:26.473 に答える
2

とった。エラーは角かっこが原因です。これらはパターンの一致に使用されるため(ここを参照)、Test-Path実際にチェックします

C:\ scrap \ data \ Evernote \ backup \ Untitled note 2_files

存在しません。-LiteralPathこれを回避するために使用する必要があります。

于 2012-09-16T21:21:55.170 に答える