【问题标题】:How can I use a variable in a powershell script run in a shell command?如何在 shell 命令中运行的 powershell 脚本中使用变量?
【发布时间】:2021-06-29 06:30:38
【问题描述】:

我有一个运行 powershell 命令的 shell 脚本(在 Windows 上)。

newPassword="New Value"
powershell -command "sed -i '/password/s/>[^<]*</>$newPassword</' C:/Users/username/.m2/settings.xml"

我可以回显 $newPassword 并查看值“新值”

我也可以运行下面的脚本,密码标签会更新为“Hello World”

powershell -command "sed -i '/password/s/>[^<]*</>Hello World</' C:/Users/username/.m2/settings.xml"

但是它不会通过传入 $newPassword 来更新文件。这样做的正确方法是什么?

【问题讨论】:

  • 你用什么shell来运行这个命令行?如果不运行 PowerShell cmdlet,为什么还需要运行 PowerShell?你可以简单地运行命令。
  • 我对这些东西不是很好,所以也许我只是做错了什么,但是当我删除 powershell - 命令时它不起作用。我认为这是 Windows 的问题?

标签: windows powershell shell


【解决方案1】:

原来我只需要在我的变量周围添加花括号

powershell -command "sed -i '/password/s/>[^<]*</>{$newPassword}</' C:/Users/username/.m2/settings.xml"

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多