我想使用Powershell脚本来复制递归到其他位置的文件夹。这必须是Powershell todo:
我已经开始使用这个脚本了:
$a = '\\serverA\folderA'
$b = '\\serverB\folderB'
#This copies the files
Get-ChildItem $a -Recurse -File | Foreach_Object {Copy-Item $_ -Destination $b}
#Removes empty files
Get-ChildItem $b -File | Foreach-Object {IF($_.Length -eq 0) {Remove-Item $_}}
我需要帮助..
答案 0 :(得分:1)
此代码将目录复制到另一个目录,其余目录应该是直接的。在$toreplace
中,每个反斜杠都应使用额外的反斜杠进行转义。
$a = [System.IO.DirectoryInfo]'C:\Users\oudou\Desktop\dir'
$b = [System.IO.DirectoryInfo]'C:\Users\oudou\Desktop\dir_copy'
function recursive($a,$b)
{
foreach ($item in @(Get-ChildItem $a.FullName))
{
if($item -is [System.IO.DirectoryInfo])
{
if ( -not (Test-Path $item.FullName.Replace($a.FullName,$b.FullName)))
{
New-Item -ItemType Directory $item.FullName.Replace($a.FullName,$b.FullName)
}
$dest = Get-ChildItem $item.FullName.Replace($a.FullName,$b.FullName)
$dest
recursive($item, $dest)
}
else
{
[string]$y = $item.FullName
$toreplace = "C:\\Users\\oudou\\Desktop\\dir"
$replace = "C:\Users\oudou\Desktop\dir_copy"
$y -replace $toreplace , $replace
Copy-Item $item.FullName ($item.FullName -replace $toreplace , $replace)
}
}
}
recursive $a $b