Powershell是伟大的脚本。但是当涉及到日常使用时,某些事情可能是一个巨大的PITA!将cygwin bin目录添加到powershell路径环境变量中... cygwin内powershell
,所以我认为这将是巨大的,如果我可以做这样的事情在我profile.ps1:
$env:path = "$($env:path);c:\cygwin\bin"
以访问像焦油,ZIP等公用设施......但这并不工作。可变期待权当我这样做:
PS > $env:path
但是当我尝试这样做,比方说,
PS > unzip foo.zip
我得到命令没有找到错误类型。
WTF PowerShell!?
编辑:伟大的答案!今天早上我用新鲜的眼睛看着它,意识到我只需要正确拼写'cygwin'!现在我不必在两个控制台之间来回切换。对于任何使用这个技巧的人来说,你在powershell中的路径是按顺序评估的 - 如果你把c:\ cygwin \ bin放在$ env:path变量的末尾,它会被最后搜索,所以它赢得了'不会干扰现有的powershell别名/ cmdlet。
虽然'$ env:path'是进程级别,它应该仍然适用于OP正在尝试做的事情。使用Environment.SetEnvironmentVariable只需将其设置为用户级别即可。 – manojlds 2012-02-16 04:07:57
啊,真的。我没有注意到他正在根据环境变量进行调用,而不是假定外部过程需要它。 – 2012-02-16 05:56:45