web-dev-qa-db-ja.com

サブフォルダーでフォルダーをコピーする方法は?

このスクリプトはPowerShellで完全に機能します。特定のタイプのすべてのファイルをコピーします。ただし、フォルダーとサブフォルダーを使用してファイルをコピーします。

$dest  = "C:\example"
$files = Get-ChildItem -Path "C:\example" -Filter "*.msg" -Recurse

foreach ($file in $files) {
    $file_path = Join-Path -Path $dest -ChildPath $file.Name

    $i = 1

    while (Test-Path -Path $file_path) {
        $i++
        $file_path = Join-Path -Path $dest -ChildPath
        "$($file.BaseName)_$($i)$($file.Extension)"
    }

    Copy-Item -Path $file.FullName -Destination $file_path
}
14
gree line

PowerTip:PowerShellを使用してアイテムをコピーし、フォルダー構造を保持する

出典:https://blogs.technet.Microsoft.com/heyscriptingguy/2013/07/04/powertip-use-powershell- to-copy-items-and-retain-folder-structure /

質問:Windows PowerShell 3.0を使用してドライブからネットワーク共有にフォルダー構造をコピーし、元の構造を保持するにはどうすればよいですか?

Answer:Copy-Itemコマンドレットを使用して、–Containerスイッチパラメーターを指定します。

$sourceRoot = "C:\temp"
$destinationRoot = "C:\n"

Copy-Item -Path $sourceRoot -Filter "*.txt" -Recurse -Destination $destinationRoot -Container
38
gvee