このスクリプトは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
}
質問:Windows PowerShell 3.0を使用してドライブからネットワーク共有にフォルダー構造をコピーし、元の構造を保持するにはどうすればよいですか?
Answer:Copy-Item
コマンドレットを使用して、–Container
スイッチパラメーターを指定します。
$sourceRoot = "C:\temp"
$destinationRoot = "C:\n"
Copy-Item -Path $sourceRoot -Filter "*.txt" -Recurse -Destination $destinationRoot -Container