Я пытаюсь скопировать PDF-файлы с одного сервера на другой, сохраняя структуру папок. Я разработал следующий сценарий.
Я пытаюсь найти данные, содержащиеся в переменной $Server
, в другой переменной $newdes
и удалить их.Однако этого не происходит.Если вы проверите переменную $newdes
, вы увидите, что она содержит данные, хранящиеся в $Server
, которые мне нужно удалить, чтобы начать копирование.
В том виде, как она стоит в переменной $newdes
содержит
C:\Temp\ \file\homedrives\home
Может не отображаться, но я вижу двойной \
в качестве пути к файлу UNC.
Мне нужно прочитать C:\temp\homedrives\home
.
Ядогадываясь из-за \ \file
, что не удается запустить копию, если это так, кто-то посоветует, как заставить это работать.
Исправлено в соответствии с просьбой:
$Criteria = *.pdf
$Trial = c:\temp\folders.txt
$Server = \\file
$Path = homedrives\home
$des = $Path
$safe = Get-Content $Trial
$safe | ForEach-Object {
# find drive-delimeter
$first = $_.IndexOf("\\");
if ($first -eq 1) {
# stripe it
$newdes = Join-Path -Path $des -ChildPath @($_.Substring(0, 1) + $_.Substring(2))[0]
} else {
$newdes = Join-Path -Path $des -ChildPath $_
}
$err = 0
> $folder = Split-Path -Path $newdes -Parent
$err = 0
# check if folder exists"
$void = Get-Item $folder -ErrorVariable err -ErrorAction SilentlyContinue
if ($err.Count -ne 0) {
# create when it doesn't
$void = New-Item -Path $folder -ItemType Directory -Force -Verbose
}
$void = Copy-Item -Path $_ -Destination $des -Force -Verbose
#$void = Copy-Item -Path $_ -Include $Criteria -Destination $Path $Choice -Recurse -Container
#$void = Copy-Item -Path $Files -Include $Criteria -Destination $newdes -Force -Verbose -Recurse -ErrorAction SilentlyContinue
Write-Host $_
}
Write-Host $newdes