मुझे स्पष्ट रूप से नहीं पता कि मैं क्या कर रहा हूं।इस PowerShell कमांड लाइन उद्धरण/भागने के साथ क्या हो रहा है?
मुझे अंत में यह PowerShell कमांड काम करने के लिए मिला है। लेकिन मैं यह नहीं समझ सकता कि यह क्यों काम करता है।
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" `
-verb:sync `
-source:contentPath="$build_directory\deploy" `
-dest:contentPath="$server_temp_directory,computerName=$server,username=$server_username,password=$server_password" `
-verbose `
-postSync=runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 Deploy""
मैं डबल डबल उद्धरण की आवश्यकता क्यों है:
मेरी चिंता का विषय अंतिम "" वर्ण है?
मेरा आईडीई (पावरगुआई) कहता है कि लाइन सही ढंग से समाप्त नहीं हुई है, लेकिन यह वही तरीका है जिसे मैं वांछित आदेश के रूप में चला सकता हूं।
यह क्या है, कि मैं - और आईडीई - PowerShell में qouting के बारे में नहीं जानता?
echoargs से एक छोटी सी उत्पादन:
अगर मैं चलाएँ:
echoargs -postSync=runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 Deploy""
मैं:
Arg 0 is <-postSync=runCommand=powershell -NoLogo -NoProfile -Command \remotetasks.ps1 Deploy>
अगर मैं बिना डबल डबल उद्धरण चलाने के लिए, मुझे मिलता है:
Arg 0 is <-postSync=runCommand=powershell>
Arg 1 is <-NoLogo>
Arg 2 is <-NoProfile>
Arg 3 is <-Command>
Arg 4 is <\remotetasks.ps1>
Arg 5 is <Deploy>
ध्यान देने योग्य एक और बात यह है कि उपरोक्त आदेश केवल तभी काम करता है जब यह अंतिम तर्क में = इसके बजाय उपयोग करता है।
यह काम नहीं करेगा:
-postSync:runCommand="powershell -NoLogo -NoProfile -Command $server_temp_directory\remotetasks.ps1 Deploy""
संपादित
अब मैं इस तरह सरणी समाधान की कोशिश की है:
$arguments = @("-verb:sync",
"-source:contentPath=$build_directory\deploy",
"-dest:contentPath=$server_temp_directory,computerName=$server,username=$server_username,password=$server_password",
"-verbose",
"-postSyncOnSuccess:runCommand=powershell -Command $server_temp_directory\remotetasks.ps1 Deploy")
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" $arguments
मैं अभी भी एक ही त्रुटि मिलती है:
त्रुटि: अपरिचित तर्क '' -postSyncOnSucces s: runCommand = powerhell -Command c: \ temp \ kslog \ remotetasks.ps1 "'परिनियोजित करें। सभी तर्क "-" से शुरू होना चाहिए।
क्या मैं यहां कुछ नई चीज़ गलत कर रहा हूं?
उत्तर के लिए धन्यवाद! मैं इस सप्ताह के अंत में कोड से दूर हूं, लेकिन जब मैं सोमवार को वापस आऊंगा तो मैं आपके सुझावों का प्रयास करूंगा। आप सही हैं, कि यह तकनीकी रूप से क्यों डबल डबल qoutes काम करता है का उत्तर नहीं है ... लेकिन अगर यह एक बग, और डिजाइन से नहीं है, तो यह वैसे भी की एक गहरी समझ हो रही लायक नहीं हो सकता है। मैं जल्द ही वापस आऊंगा। – asgerhallas
तो। मैंने पैरामीटर के लिए सरणी का उपयोग करने के संयोजनों के सभी प्रकार की कोशिश की है। कुछ भी काम नहीं करता है। क्या आपको पता है क्यों? – asgerhallas
मैं अपने नए कोशिश ... – asgerhallas