Ich hoffe, dass dies ein dummer Fehler ist und ich etwas wirklich einfaches übersehe. Ich habe eine Funktion, um ein Netzlaufwerk zuzuordnen und den Inhalt des Netzlaufwerks zu einem Ziel zu kopieren. Am Ende gebe ich den Zielpfad zur späteren Wiederverwendung zurück. Es scheint jedoch verschiedene Objekttypen für den Zielpfad zurückzugeben. Es folgt der Code-Schnipsel:Kopiert-Item Ändere den Typ des Zielparameters in 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
}
ich die Funktion aufrufen wie folgt:
$stageDirectory = CopyDropFolder -dropFolder $mapFolder -releaseName $releaseName -mapDrive $newDrive
Write-Host 'Staged to ' $stageDirectory
Die Ausgabe von mit der Funktion (Write-Host $ destinationDirectory) ist:
c:\temp\mycopieddirectory-20161228-1422\
jedoch Aus dem Hauptskript, in dem der Aufruf erfolgt, lautet die Ausgabe:
Staged to Z c:\temp\mycopieddirectory-20161228-1422\
Es scheint, als wäre die Variable stageDirectory, die zurückgegeben wird, irgendwie mit Z verknüpft: welches das neue Laufwerk ist, das in der Funktion zugeordnet ist.
Irgendwelche Ideen, wie man tatsächlich nur den Pfad zurückgibt, der oben in der Funktion gedruckt wird?
Das ist sehr interessant zu wissen. Ich werde das versuchen und Ihnen das Ergebnis mitteilen. – sohail
Nein, versuchte oben, aber das Ergebnis ist das gleiche – sohail
Auch ich bin verwirrt, warum würde es die Variable $ Zielverzeichnis auswirken, wenn ich $ stageDirectory als meine Zielvariable verwenden – sohail