I 매개 변수의 수를 필요로하는 스크립트가 : 명령 프롬프트에서파워 쉘 : 작업에 매개 변수를 전달
param ([string]$FOO="foo",[string]$CFG='\ps\bcpCopyCfg.ps1', [string]$CFROM="none", `
[string]$CTO="none", [switch]$HELP=$FALSE, [switch]$FULL=$FALSE, [string]$CCOL="none" `
,[string]$CDSQUERY="none", [string]$CMSSRV="none" `
,[string]$CSYBDB="none", [string]$CMSDB="none")
라고 예를 들어,
는 파워 쉘. \ bcpCopy.ps1 -CFROM earn_n_deduct_actg -CTO fin_earn_n_deduct_actg -CCOL f_edeh_doc_id
모든 것이 잘 작동합니다. 그러나 스크립트의 여러 인스턴스를 병렬로 시작해야하며 실제 작업을 수행하는 스크립트를 작성하는 래퍼 스크립트를 작성했습니다. 인수를 사용하여 배열을 준비합니다 ("
# Prepare script block to be released
$ARGS=("-CFG ", $CFG, "-CSYBDB ", $SYBDB, "-CMSDB ",$MSDB, "-CFROM ", $SYBTBL, "-CTO ",$MSTBL)
if ($FULL) {
$ARGS = $ARGS + " -FULL"
} else {
$ARGS = $ARGS + " -CCOL $($args[5]) "
}
"Argument array:"
$ARGS
start-job -scriptblock {powershell.exe -file '\ps\bcpCopy.ps1'} -ArgumentList $ARGS
불행하게도, 호출 된 스크립트가 인수를받지 않습니다 : -cfg ") anhd 전달할는 작업-시작하는 호출자가 배열을 인쇄하고 그것을 잘 보이는 :
인수 배열 :
를 - CFG
\ ps \ bcpCopyCfgOAH.ps1
(210) -CSYBDB
vnimisro
-CMSDB
IMIS_UNOV
-CFROM
earn_n_deduct_ref
-CTO
fin_earn_n_deduct_ref
- 전체
하지만라는 스크립트의 출력이 수신 유일한 매개 변수는 것을 말한다 구성 파일 - 나머지는 모두 기본값에 있습니다.
PS C : \ PS> 수신 일 1391
2010-12-17 10시 54분 14초 테이블 없음의 업로드를 시작; 소스 db 없음;
12/17/2010 10:54:14 대상 테이블이 없음; 목표 db는 none입니다.
12/17/2010 10:54:14 구성 파일은 \ ps \ bcpCopyCfg.ps1입니다.
12/17/2010 10:54:14 대상 서버 (MS SQL)는 secap900-new입니다.
2010-12-17 10:54:14 원본 데이터베이스를 지정해야합니다. 종료 중 ...
내가 뭘 잘못하고있어?
감사합니다. – Lubo
조언 해 주셔서 감사합니다. 이제 일자리가 풀려나고 아무 것도하지 않는 것처럼 보입니다. 스크립트가 시작되고 인자를 출력 한 직후에도 스크립트에 exit를 넣어 두었던 지 계속 계속합니다. BTW 작업을 시작하는이 방법으로 mngr 작업은 여전히 15 powershell이 처리되었음을 보여줍니다. # 정확히 – Lubo
을 시작했으며 작업을 수동으로 중지 한 후에도 receive-job은 아무 것도 반환하지 않습니다. – Lubo