私は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は次のようになります、ファイルを実行するのではなく、実行の出力は
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ファイルは次のとおりです。
私は、単純なCMDファイル、次の処理を行い(Copy.cmd)を作成する場合は、 Xcopyを "C:\フォルダ1"^ "C:\フォルダ2" そして、PowerShellスクリプト 「Cでそれを呼び出す:\ Copy.cmd " これは機能します。 ただし、Msiexecを使用する傾向がある場合は、cmdファイルを実行するのではなく印刷します。だから私の(copy.cmd)は、以下の ます。Msiexecが含まれている場合は/私は をEtrmInstaller.msiそして、PowerShellスクリプトが & "C:\フォルダ1 \ Copy.cmd" である その後、出力はC:\ DocumentsとSettings \ tarora \ My Documents> Msiexec/i EtrmInstaller.msi 何も実行されていません! C:\ DocumentsとSettings \ tarora \マイドキュメント> Msiexecは/ Iが Tpの –
ヒントをEtrmInstaller.msi:読みやすく質問はより多くの回答を得かもしれない持ちます – fenster