Bối cảnh: Tôi có một kịch bản PowerShell: script1
mà mất trong một sourceDirectory
và hai điểm đến (gọi cho họ dest1Directory
và dest2Directory
).Powershell: Nhận kết quả trả về từ Powershell Script gọi từ bên trong PS Script khác
Các sourceDirectory được cấu trúc như thế này:
\ Source \ dest1 \ STUFF1
và
\ Source \ dest2 \ STUFF2
script1
cuộc gọi tập lệnh khác: script2
, foreach
STUFF (vì vậy script2
có thể chạy 10 lần chẳng hạn), cung cấp script2
với thông số đích cần thiết, tạo bản sao lưu tất cả nội dung "STUFF" được thay thế trên dest1Directory
và dest2Directory
rồi sao chép tất cả STUFF đích tương ứng.
Script1
:
foreach ($folder in $STUFF1)
{
& $script2 -stuffParameter $folder -destDrive $dest1Directory -backUpDrive $BackUpDirectory
}
Vấn đề tôi đang gặp là:
Tôi gọi script1
từ một trang web visual studio và muốn script2
để đầu ra tất cả các đường dẫn thư mục sao lưu nó tạo ra vì vậy tôi có tài liệu tham khảo cho họ sau này. Tôi đã cố gắng bên này script2
:
$returnRollBackObj = New-Object Object
Add-Member -memberType NoteProperty -name "RollBackLocation" -value $folderobj -inputObject $returnRollBackObj
return $returnRollBackObj
Nhưng nó dường như không trả lại đối tượng vì chúng là các cuộc gọi subscript. Tôi không biết làm thế nào để trả lại một số không xác định của các đối tượng này từ script1
vì vậy tôi đang thua lỗ. Ai đó có thể giúp tôi không?
Tôi đã tìm được nhiều nhưng khi tôi thử nó không hoạt động như mong đợi. Tôi có 'script1' gọi' script2' với trả về không được trả về, tuy nhiên chỉ có một câu lệnh return từ đầu ra 'script1' đến bàn điều khiển của tôi. Có một loạt đầu ra 'Write-Host/Write-Warning' hoạt động tốt từ' script2'. –
@Evan Layman - bạn muốn trả lại gì từ tập lệnh 1? – manojlds
Xin lỗi tôi không nghĩ rằng cần thiết phải bao gồm điều này: Tôi có một đối tượng khác chứa vị trí nhật ký được trả lại từ 'script1' (và điều này hoạt động chính xác) –