gpt4 book ai didi

powershell - 在传递给 Powershell 的参数中转义 %

转载 作者:行者123 更新时间:2023-12-03 11:23:33 25 4
gpt4 key购买 nike

我有一个 MSBuild 脚本,它启动 PowerShell 以在远程计算机上执行一些工作,因此您必须传递密码才能创建远程 session ,但存在问题 - 如果密码包含 % 字符,则解析错误 - % 丢失(例如:pass%word -> 密码,'%' -> ''(无))。

如果我在 PowerShell 脚本中创建变量 $password = "pass%word"它工作正常。
我知道 % 是 PowerShell 中的 foreach,所以我尝试使用 ` - 但它没有帮助。
我也可以更改密码,但这不是一个选项(目前)。

那么我该如何解决这个问题呢?

MSBuild 部分

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Test">
<Target Name="Test">
<!-- %25 - it's code for %-->
<Exec Command="powershell &quot;&amp; {. 'C:\test.ps1';Test -password '`%25'}&quot;" />
</Target>
</Project>

测试.ps1
Function Test {
param (
[string]$password = $(throw "Please specify password")
)

Write-Host $password
}

最佳答案

在批处理文件中,可以使用双百分号 ( %% ) 来“转义”百分号。
所以这将解决问题:

<Exec Command="powershell &quot;&amp; {. 'C:\test.ps1';Test -password '%25%25'}&quot;" />

关于powershell - 在传递给 Powershell 的参数中转义 %,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com