我想在 bash 腳本的 1 行中運行sudo pwsh, Import-Module myFile.psm1, Set-Values -Body 10。
嘗試使用&&and 和;運算子但沒有用。
有什么辦法可以做到這一點?
uj5u.com熱心網友回復:
我想為此提供一種替代方法,當您有一組復雜的命令想要作為單行程式運行時,這種方法會更加有用。
PowerShell 和 PowerShell Core 都支持-EncodedCommand引數。上面的文章將引數詳細說明為:
接受 Base64 編碼的字串版本的命令。使用此引數向 PowerShell 提交需要復雜嵌套參考的命令。Base64 表示必須是 UTF-16LE 編碼的字串。
使用 EncodedCommand 引數,我們可以將單個Base64字串傳遞給 PowerShell 或 PWSH 程式,它會解碼并解釋它,就像運行原始命令一樣。在過去處理包含引號和撇號的嵌套陳述句和腳本塊時,我發現這非常有用。
如上所述,EncodedCommand 引數要求將命令轉換為 UTF-16LE Base64 字串。如果您愿意,有各種在線轉換器可以處理轉換(可以在此處找到一個這樣的轉換器:PowerShell Encoder)
例如,假設我們要運行以下命令:
Import-Module ./myFile.psm1
Set-Values -Body 10
Upload-Values
$result = Confirm-Upload
if ($result -eq "OK") {
Write-Host 'Upload Successful'
} else {
Write-Host 'Upload Failed'
}
轉換為 Base64 字串后,我們最終得到以下字串:
SQBtAHAAbwByAHQALQBNAG8AZAB1AGwAZQAgAC4ALwBtAHkARgBpAGwAZQAuAHAAcwBtADEADQAKAFMAZQB0AC0AVgBhAGwAdQBlAHMAIAAtAEIAbwBkAHkAIAAxADAADQAKAFUAcABsAG8AYQBkAC0AVgBhAGwAdQBlAHMADQAKACQAcgBlAHMAdQBsAHQAIAA9ACAAQwBvAG4AZgBpAHIAbQAtAFUAcABsAG8AYQBkAA0ACgBpAGYAIAAoACQAcgBlAHMAdQBsAHQAIAAtAGUAcQAgACIATwBLACIAKQAgAHsADQAKACAAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnAFUAcABsAG8AYQBkACAAUwB1AGMAYwBlAHMAcwBmAHUAbAAnAA0ACgB9ACAAZQBsAHMAZQAgAHsADQAKACAAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnAFUAcABsAG8AYQBkACAARgBhAGkAbABlAGQAJwANAAoAfQA=
要執行此操作,我們只需執行以下操作:
pwsh -EncodedCommand SQBtAHAAbwByAHQALQBNAG8AZAB1AGwAZQAgAC4ALwBtAHkARgBpAGwAZQAuAHAAcwBtADEADQAKAFMAZQB0AC0AVgBhAGwAdQBlAHMAIAAtAEIAbwBkAHkAIAAxADAADQAKAFUAcABsAG8AYQBkAC0AVgBhAGwAdQBlAHMADQAKACQAcgBlAHMAdQBsAHQAIAA9ACAAQwBvAG4AZgBpAHIAbQAtAFUAcABsAG8AYQBkAA0ACgBpAGYAIAAoACQAcgBlAHMAdQBsAHQAIAAtAGUAcQAgACIATwBLACIAKQAgAHsADQAKACAAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnAFUAcABsAG8AYQBkACAAUwB1AGMAYwBlAHMAcwBmAHUAbAAnAA0ACgB9ACAAZQBsAHMAZQAgAHsADQAKACAAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnAFUAcABsAG8AYQBkACAARgBhAGkAbABlAGQAJwANAAoAfQA=
uj5u.com熱心網友回復:
可以這樣做:
pwsh -Command "Import-Module myFile.psm1; Set-Values -Body 10"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493730.html
