gpt4 book ai didi

powershell - 嵌入Powershell脚本问题

转载 作者:行者123 更新时间:2023-12-02 23:44:20 25 4
gpt4 key购买 nike

根据另一个用户建议的建议创建此问题,这是this的后续内容。

这种情况是,我当前正在尝试创建Powershell脚本,首次用户可以运行该脚本,它将安装大量程序并完成一些配置更改。配置更改之一是创建一个包含两个shell命令的文件(在下面发布),该文件将在每次加载GitBash时执行。

我要输入到.sh文件中的命令是..(删除了“和”

alias proxyon=source $HOMEPATH/.proxy/proxy-switch.sh on

alias proxyoff=source $HOMEPATH/.proxy/proxy-switch.sh off

我正在尝试使用以下命令来执行此操作
add-content "${env:homepath}\.proxy\TempProxy.bat" "alias proxyon='source "$HOMEPATH/.proxy/proxy-switch.sh on"'" 

但是,执行ps1脚本会引发错误,最上面一行是
Add-Content : A positional parameter cannot be found that accepts argument '/.proxy/proxy-switch.sh'.

现在,另一个用户告诉我,如果我要使用double“,则需要转义内部引号。据我所知,Powershell中的转义字符是`,因此我尝试了以下内容。
add-content "${env:homepath}\.proxy\TempProxy.bat" "alias proxyon='source `"$HOMEPATH/.proxy/proxy-switch.sh on"'" 

这给了以下

The string starting: At C:\Chef\windowsdevbox-master\test.ps1:2 char:113 + add-content "${env:homepath}.proxy\TempProxy.bat" "alias proxyon='source `"$HOMEPATH/.proxy/proxy-switch.sh on" <<<< '" is missing the terminator: '.



我也尝试过
add-content "${env:homepath}\.proxy\TempProxy.bat" "alias proxyon='source `"$HOMEPATH/.proxy/proxy-switch.sh on`"'" 

这不会出错,但是不会添加$ HOMEPATH的内容,而仅添加以下内容
alias proxyon='source "/.proxy/proxy-switch.sh on"'

关于此的任何建议将不胜枚举。

最佳答案

我认为问题在于,您希望输出文件中使用文字$homepath以便让GitBash处理它。有很多方法可以尝试逃避和处理此问题,但是让您与上一个工作差不多的工作已经准备就绪。

add-content "${env:homepath}\.proxy\TempProxy.bat" "alias proxyon='source `"`$HOMEPATH/.proxy/proxy-switch.sh on`"'" 

唯一不同的是 $HOMEPATH前面的反引号。由于PowerShell使用$来声明和引用变量,因此您需要对其进行转义(就像对引号所做的那样),以防止PowerShell对其进行插值。

由于您没有名为 $HOMEPATH的变量,因此会在那时使用空值创建该变量。这就是为什么上一个示例的输出看起来像以前一样。

使用格式运算符

另一个可能更容易出现的选择是使用格式运算符。如果您想将其临时存储在变量中,则可以使用它。
$content = "alias proxyon='{0}'" -f 'source "$HOMEPATH/.proxy/proxy-switch.sh on"'
add-content "${env:homepath}\.proxy\TempProxy.bat" $content

或内联它将是
add-content "${env:homepath}\.proxy\TempProxy.bat" ("alias proxyon='{0}'" -f 'source "$HOMEPATH/.proxy/proxy-switch.sh on"')

关于powershell - 嵌入Powershell脚本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920934/

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