2012-10-01 97 views
4

我無法得到這個工作參數傳遞到批處理文件中msdeploy runco​​mmand

call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy 

它給我:

警告:「BACKUP.BAT」未被識別爲一個內部或外部命令,可操作程序或批處理文件。

警告:進程'C:\ Windows \ system32 \ cmd.exe'(命令行)' 退出代碼'0x1'。總的變化:1(0添加,0刪除,1 更新,0參數改變,0字節複製)

如果我刪除參數1和硬編碼的蝙蝠裏面,它的工作原理,所以沒有問題蝙蝠文件,萬一你想知道。

我試圖指定的完整路徑爲.bat,它仍然不工作:

call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='c:\backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy 

在這種情況下,它看起來像它解釋路徑作爲遠程路徑,它預計backup.bat在服務器上。這是我確認後,我把backup.bat在服務器上,它的工作

爲什麼它必須如此硬?

回答

5

編輯您是對的,該cmd/bat文件將被流式傳輸到目的地documentation states

在我看來,它只是一個功能的限制,它不能接受參數。在部署時使用硬編碼設置創建批處理文件的修改版本應該不會太困難。

喜歡的東西:

REM Start of prepended script 
SET SCRIPT_USERNAME=ThatGuy 
REM End of prepended script 

IF ("%SCRIPT_USERNAME%" == "") SET SCRIPT_USERNAME=%1 

更新已經瀏覽msdeploy的反射源(啊哈),我可以證實,這簡直是當前設計的方式。它根據整個路徑是否代表文件來決定是否上傳文件。由於添加參數會阻止它解析文件的路徑,因此它不會上傳任何內容。

+0

不正確。 runCommand能夠流和執行.bat文件,.bat文件不需要在目標服務器上。在您提供的同一鏈接中,它說:「如果指定了批處理文件或命令文件,則該文件將流式傳輸到目標計算機,並在目標計算機上作爲本地命令運行」。問題是我無法傳遞批處理文件 –

+1

+1的參數。 Ta再次;) –

+0

大家好,我知道這是一年前,但是這方面有什麼發展?我試圖用部署服務器上的單個腳本來做同樣的事情,然後用不同的參數調用它。 – WheretheresaWill

相關問題