Надеюсь, что это глупая ошибка, и я пропускаю что-то очень простое. У меня есть функция для сопоставления сетевого диска и копирования содержимого сетевого диска в пункт назначения. В конце концов, я возвращаю путь назначения для повторного использования позже. Однако, похоже, он возвращает тип объекта другого типа для пути назначения. Ниже приведен фрагмент кода:Does Copy-Item Изменение типа целевого параметра в PowerShell
function CopyDropFolder {
param(
[string] $dropFolder,
[string] $releaseName,
[string] $mapDrive
)
$stageDirectory= $('c:\temp\' + $releaseName + '-' + (Get-Date -Uformat %Y%m%d-%H%M).ToString() + '\')
[string]$destinationDirectory = $stageDirectory
Write-Host 'Mapping Folder ' $dropFolder ' as ' $mapDrive
MountDropFolder -mapfolder $dropFolder -mapDrive $mapDrive
$sourceDir = $mapDrive + ':' + '\'
Write-Host 'Copying from mapped drive (' $sourceDir ') to ' $stageDirectory
Copy-Item $sourceDir -Destination $stageDirectory -Recurse
Write-Host $destinationDirectory
return $destinationDirectory
}
я вызываю функцию следующим образом:
$stageDirectory = CopyDropFolder -dropFolder $mapFolder -releaseName $releaseName -mapDrive $newDrive
Write-Host 'Staged to ' $stageDirectory
Выход с функцией (Write-Host $ destinationDirectory) является:
c:\temp\mycopieddirectory-20161228-1422\
Однако из основного сценария, где выполняется вызов, вывод:
Staged to Z c:\temp\mycopieddirectory-20161228-1422\
Кажется, что возвращаемая переменная stageDirectory каким-то образом отображается с Z: это новый диск, который отображается в функции.
Любые идеи о том, как фактически вернуть только путь, который напечатан выше внутри функции?
Это очень интересно знать. Я попробую это и дам вам знать результат. – sohail
Нет, попробовал, но результат такой же – sohail
Кроме того, я смущен относительно того, почему он будет влиять на переменную $ destinationDirectory, когда я использую $ stageDirectory в качестве переменной назначения – sohail