我有一些PowerShell脚本可以接受许多长参数,例如,

myScript.ps1 -completePathToFile "C:\...\...\...\file.txt" -completePathForOutput "C:\...\...\...\output.log" -recipients ("[email protected]") -etc.

除非所有参数都在同一行上,否则我似乎无法使PowerShell运行此类脚本。有没有办法像这样更调用脚本?
myScript.ps1
  -completePathToFile "C:\...\...\...\file.txt"
  -completePathForOutput "C:\...\...\...\output.log"
  -recipients (
    "[email protected]",
    "[email protected]"
   )
  -etc

缺乏可读性使我发疯,但是脚本确实确实需要具有此参数。

最佳答案

PowerShell认为该命令在该行的末尾是完整的,除非它看到某些字符,例如管道,打开括号或打开 curl 。只需在每行末尾添加一个行连续字符```,但要确保该连续字符后没有空格:

myScript.ps1 `
  -completePathToFile "C:\...\...\...\file.txt" `
  -completePathForOutput "C:\...\...\...\output.log" `
  -recipients (
    "[email protected]", `
    "[email protected]" `
   )

如果您使用的是PowerShell 2.0,则还可以将这些参数放在哈希表中并使用splating,例如:
$parms = @{
    CompletePathToFile   = 'C:\...\...\...\file.txt'
    CompletPathForOutput = 'C:\...\...\...\output.log'
    Recipients           = '[email protected]','[email protected]'
}
myScript.ps1 @parms

关于command-line - 必须仅使用一行来调用PowerShell脚本吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2057631/

10-17 02:18