當我在沒有管理員的情況下透過批次檔執行腳本時,它會傳遞參數,但是當我以管理員身分執行腳本時,它不會傳遞參數。
我嘗試了連結中的命令,但沒有成功:
以管理員身份開啟程式(有條件)
以管理員身分透過批次檔執行腳本的命令:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File "D:\z_Batchs e Scripts\Batchs\Normaliza_LUFS\ArqsNorms_LUFS_pass.ps1' '%_vLUF%' -Verb RunAs}"
是%_vLUF%
要傳遞的參數。
錯誤訊息:
No line:1 character:4
+ & {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolic ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
powershell腳本中的指令接收參數:
Param(
[decimal]$env:_vLUF
)
批次檔或 powershell 腳本中的指令可能有什麼問題?
答案1
根據以下連結中的答案:
透過批次檔作為管理員執行 powershell 腳本
它是這樣運作的:
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process -Verb RunAs powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"D:\z_Batchs e Scripts\Batchs\Normaliza_LUFS\ArqsNorms_LUFS_pass.ps1\" -_vLUF %_vLUF%'"