Я создаю инкрементные структуры каталогов, и по какой-то причине Join-Path показывает 2 dirs. Когда я позже соединяю это с файлом, который отправляю в copy-item, это вызывает ошибку, как показано ниже. Я показал в комментарии для строки $ to_loc_finalDT1, где я впервые вижу эти два каталога:
Copy-Item : Cannot find path '\\T2\DisasterBackup\Loc_2019-03-08\Privileges\Privileges_HH_Bak.csv \\T2\DisasterBackup\Loc_2019-03-08\Privileges\Privileges_HH_Bak.csv' because it does not exist
Итак, это подходящий скрипт powershell:
$T2 = "\\T2\DisasterBackup\Loc"
$toLocParentDT2 = CreateDatedFolder $parentDirBaseNameDT2
$to_loc_finalDT2 = Join-Path -Path $toLocParentDT2 -ChildPath "Privileges"
#create sub-folder location
if(-Not (Test-Path $to_loc_finalDT2 ))
{
write-output " Creating folder $to_loc_finalDT2 because it does not exist "
New-Item -ItemType directory -Path $to_loc_finalDT2 -force
}
#second dir save files to
$parentDirBaseNameDT1 = "\\T1\DisasterBackup\Loc"
$toLocParentDT1 = CreateDatedFolder $parentDirBaseNameDT1
$to_loc_finalDT1 = Join-Path -Path $toLocParentDT1 -ChildPath "Privileges" #shows 2 dirs here in debugger: \\T2\DisasterBackup\Loc_2019-03-08\Privileges \\T2\DisasterBackup\Loc_2019-03-08\Privileges
#create sub-folder location
if(-Not (Test-Path $to_loc_finalDT1 ))
{
write-output " Creating folder $to_loc_finalDT1 because it does not exist "
New-Item -ItemType directory -Path $to_loc_finalDT1 -force
}
Я не уверен, как заставить Join_path иметь только один каталог, как и должно быть. Прямо сейчас, я думаю, что это рассматривается как массив, что не правильно.
Я пытался найти похожие проблемы, но ничего подобного не видел.
Обновление
Вот код для CreateDatedFolder:
#create dated folder to put backup files in
function CreateDatedFolder([string]$name){
$datedDir = ""
$datedDir = "$name" + "_" + "$((Get-Date).ToString('yyyy-MM-dd'))"
New-Item -ItemType Directory -Path $datedDir -force
return $datedDir
}
Вывод для этого выглядит нормально, когда он возвращается. Он добавляет дату в \ T2 \ DisasterBackup \ Loc, но отладчик показывает только один каталог, а не массив или 2 каталога, которые являются отдельными строками.