msi를 호출하고 매개 변수를 전달하는 cmd 파일이 있습니다. 이 deploy.cmd 파일을 powershell 스크립트에서 호출합니다. 어떻게이 문제를 해결할 수 있습니까?내 ps 스크립트에서 cmd 파일을 실행하는 방법은 무엇입니까?
내가 여기에서 뭔가를 찾을 수 없습니다. 는 ps이 실행될 때
# Assigning Build Number and Drop Location for the MSI in scope
$buildNumber = $TfsDeployerBuildData.BuildNumber
$dropLocation = $TfsDeployerBuildData.DropLocation
# Assign values
if($buildNumber -eq $null)
{
$buildNumber = $args[0]
$dropLocation = $args[1]
}
# Move old uninstall folder to Archive folder
Move-Item "D:\deploy\ABC_Uninstalled\*" "D:\deploy\ABC_Archive" -force
# Move old build folder to uninstalled folder
Move-Item "D:\deploy\ABC_Installed\*" "D:\deploy\ABC_Uninstalled" -force
# Logging
Add-Content -Path "C:\Log\TfsDeployer_Log.txt" -Value $dropLocation
Add-Content -Path "C:\Log\TfsDeployer_Log.txt" -Value $buildNumber
# Copy the msi from drop location to local physical drive
Copy-Item $dropLocation "D:\deploy\ABC_Installed" -recurse
Add-Content -Path "C:\Log\TfsDeployer_Log.txt" -Value "Copied the Msi to D:\deploy\Installed"
# Start execution
& "D:\deploy\ABC_Installed\$buildNumber\en-us\ETRM_QA.cmd"
그러나, 그것은 cmd를 내부에 무엇을 인쇄
Msiexec /i ABCInstaller.msi^
DB.SERVER=ABC\QA^
APPLICATION.ENV.TYPE=Qa^
[email protected]^
SVCPASSWORD=xxx^
LOCAL.EMAILING="true"^
EMAIL.GMAT="[email protected]"^
EMAIL.GMATR="[email protected]"^
EMAIL.SUCCESSFUL.VALIDATION.SUBJECT="[QA] Successful validation of ABC Message"^
/lv "ABC_Installer_QA_Log.txt"
이 내 PowerShell 스크립트의 모습입니다
이 내 cmd를이 모습입니다, 오히려 파일을 실행하기보다는, 그래서 실행의 출력은 cmd를 파일이
Output: C:\WINDOWS\system32>Msiexec /i ABCInstaller.msi^
DB.SERVER=ABC\QA^
APPLICATION.ENV.TYPE=Qa^
[email protected]^
SVCPASSWORD=xxx^
LOCAL.EMAILING="true"^
EMAIL.GMAT="[email protected]"^
EMAIL.GMATR="[email protected]"^
EMAIL.SUCCESSFUL.VALIDATION.SUBJECT="[QA] Successful validation of ABC Message"^
/lv "ABC_Installer_QA_Log.txt" /passive T
이다
하지
내가 간단한 cmd를 파일 다음을 수행 (Copy.cmd)를 작성하는 경우, Xcopy를 "C : \ 폴더 1"^ "C : \ 폴더 2" 그리고 PowerShell 스크립트 "C에서 호출 : \ Copy.cmd " 작동합니다. 그러나 Msiexec을 사용하는 경향이 있다면 cmd 파일을 실행하는 대신 인쇄합니다. 그래서 내 (copy.cmd)의 경우 다음 Msiexec가 포함/내가 을 EtrmInstaller.msi 그리고 파워 쉘 스크립트는 & "C : \ 폴더 1 \ Copy.cmd"입니다 다음 출력는 C : \ 문서 및 설정 \ tarora \ My Documents> Msiexec/i EtrmInstaller.msi 하지만 아무 것도 실행되지 않습니다! C : \ 문서 및 설정 \ tarora \ 내 문서> Msiexec가가/내가 을 EtrmInstaller.msi Tp를 –
팁 : 더 읽기 질문을 가진 것은 얻을 수있는 추가 답변 – fenster