2012-04-09 33 views
15

trong powershell Tôi muốn tìm hiểu cách tốt nhất để gọi biến cho công việc bắt đầu vì vậy tôi không phải chỉnh sửa tập lệnh cho mỗi máy chủ vì nó sẽ được cụ thể dựa trên khách hàng tôi đã đặt kịch bản của tôi trên.Biến Powershell để bắt đầu công việc

$Servername = 'Server1' 
    $pingblock = { 
     pathping $servername | Out-File C:\client\PS\ServerPing.TXT 
    } 
    start-job $pingblock 

khi tôi chạy mã ở trên, tôi chỉ nhận được tệp với trợ giúp như thể tôi quên chỉ định $ servername.

Trả lời

22

Sử dụng tham số -ArgumentList trên Start-Job ví dụ .:

Start-Job -Scriptblock {param($p) "`$p is $p"} -Arg 'Server1' 

Trong trường hợp của bạn:

$pingblock = {param($servername) pathping $servername | Out-File C:\...\ServerPing.txt} 
Start-Job $pingblock -Arg Server1 
+0

Cảm ơn! Tôi đã bỏ lỡ công việc đầu tiên đó đã có một danh sách đối số. – jjamesjohnson

Các vấn đề liên quan