运行以下 Azure 管道时,出现错误:
检测到参数中的字符可能无法被 shell 正确执行。请使用反引号 (`) 转义特殊字符。
这是因为密码中包含 Unicode 字符£
。为了简化,我将密码放在脚本变量中,但实际管道会从其参数中获取密码。
PowerShell@2
这似乎是在生成临时脚本时Azure 任务中出现的错误。
如何允许传递这些特殊字符?
管道脚本:
variables:
- name: password
value: £f1l1
pool:
vmImage: windows-latest
steps:
- task: PowerShell@2
inputs:
filePath: 'someScript.ps1'
arguments: "-password $(password)"
使用在任务级别设置的环境变量可能是避免转义/编码问题的最佳方法。此外,这也是处理密码等敏感信息时推荐的方法。
使用带有参数的 Powershell 脚本
测试脚本:
测试管道:
运行管道:
使用带有环境变量的 Powershell 脚本
测试脚本:
测试管道:
运行管道: