我试图移动用户文件夹列表到一个新的文件服务器,所以我需要保持权限不变。为此,我使用robocopy。问题是,它只会移动源文件夹内的文件和子文件夹,而不是源文件夹本身。这是我使用的脚本:
function Move-Folders {
param(
[Parameter(Mandatory=$true)]
[string]$Csv
)
$folders = Import-Csv -Path $Csv
$Target = "\\Server\share\"
foreach ($folder in $folders) {
$folderPath = $folder.Path
Write-Host "moving folder $folderPath"
try {
robocopy $folderPath $Target /E /COPYALL /MOVE /NP
} catch {
$errorMessage = $_.Exception.Message
Write-Host -ForegroundColor Yellow "Error Moving folder $folderPath : $errorMessage"
}
}
}
如果发生错误,它也不会显示我在捕获中写入的错误消息。有人能帮忙吗?我如何获得移动CSV文件中写入的源文件夹的命令?这是我第一次使用Robocopy,因此如果你们对命令有任何修改,请随时添加它。CSV路径列的写入方式为\Server\folder
1条答案
按热度按时间yhqotfr81#
您可以尝试使用以下命令获取directoryname本身:
然后将目录名称添加到robocopy命令:
完整的脚本将如下所示:
也许它会更好地编辑CSV文件与更多的信息,并获得所需的文件夹直接从CSV。