2009-12-08 23 views
7

我想要的是一個文件,我可以雙擊它將使用psake運行所需的構建過程。如何從批處理文件中使用psake?

我是新來的psake和PowerShell所以要溫柔:-)。

我現在有什麼是3個文件:

文件1:BUILD.BAT

PowerShell -ExecutionPolicy Unrestricted -File .\Build.ps1 %1 

文件2:Build.ps1

Import-Module .\psake.psm1 
Invoke-psake .\BuildTasks.ps1 $args 

文件3:BuildTasks.ps1

task default -depends Verify, Joe 

task Verify { 
    write-host "hello from Verify!" 
} 

task Joe { 
    write-host "hello from Joe" 
} 

無論如何要合併將Build.ps1和BuildTasks.ps1整合到一個文件中?

回答

8

你應該能夠

powershell -Command "& {Import-Module .\psake.psm1; Invoke-psake .\BuildTasks.ps1 %*}" 

它擺脫了build.ps1文件來做到這一點。

+0

約翰內斯。感謝堆。只有一個解決方案。需要%1而不是$ args。 PowerShell -ExecutionPolicy Unrestricted -Command「&{Import-Module。\ psake.psm1; Invoke-psake。\ BuildTasks.ps1%1}」 – 2009-12-08 10:00:56

+0

Eep,對吧。抱歉。 – Joey 2009-12-08 10:42:11

1

Psake帶有一個powershell腳本「psake.ps1」,它爲您打包。它看起來像:

import-module .\psake.psm1 
invoke-psake @args 
remove-module psake 

所以,你的批處理腳本看起來像

powershell {path-to-module}\psake.ps1 .\buildTasks.ps1 
+0

您提到的psake.ps1文件適用於將任務傳遞到invoke-psake調用,但是當您嘗試傳遞哈希表(-parameters和-properties參數)時失敗。至少我沒有能夠得到它的工作。 – Jimit 2010-10-25 09:50:51