【问题标题】:wget not found by PowerShell script?PowerShell脚本找不到wget?
【发布时间】:2018-10-14 20:39:15
【问题描述】:

我有一个装有 Windows 7 64 位的旧笔记本,它每周日都能完美地执行 PowerShell 脚本。不幸的是,一旦负载增加,它就开始崩溃,我决定买一台新电脑。在这台 PC 上,我之前安装了 64 位 Windows&nbspe;10 Pro,即使在这里,脚本也是每周日执行的。由于 Microsoft 的更新政策,我从新 PC 中删除了 Windows 10 并安装了 Windows 7 64 位。但是现在相同的脚本崩溃了,因为它找不到wget

$wg = Start-Process wget.exe -wait -NoNewWindow -PassThru -ArgumentList $argList 

Gnu Wget 安装正确(我认为)。它位于:

C:\Program Files (x86)\GnuWin32\bin\wget.exe

它甚至在HKEY_LOCAL_MACHINE → SOFTWARE → Wow6432Node → GnuWin32|Wget|1.11.4-1|setup|InstallPath: C:\Program Files (x86)\GnuWin32 下进入注册表。

但尽管如此,如果我打开 CMD 控制台并输入 wget(或 wget.exe),我会得到:

命令“wget”拼写错误或找不到。

即使在重新启动 PC 后,PowerShell 仍会不断找到 wget,我该怎么办?甚至例如尽管已正确安装 Notepad++(?),但 CMD 控制台无法找到它。这里有什么问题?

【问题讨论】:

  • 强烈建议:只需重新安装 Notepad++ 并重新安装 wget。请务必使用每个可用的“setup/msi 安装程序”。
  • 我至少安装了 3 次 wget!
  • gooly - 你检查过路径变量吗? 听起来你的路径不包括 exe 安装目录。
  • @paulsm4 如果没有安装程序将安装路径添加到 PATH 环境变量中,这究竟有什么帮助?
  • 我将 wget-path 手动添加到 PATH 中,现在它可以工作了 - 但我仍然很惊讶安装程序没有输入它。

标签: powershell windows-7 wget


【解决方案1】:

如果您希望能够在不指定路径的情况下运行命令,则需要将其所在的目录添加到 PATH 环境变量中。注册表 SOFTWARE 分支中的安装路径与此无关。

要将目录添加到当前和所有未来会话的 PATH,您需要执行以下操作:

$dir = "${env:ProgramFiles(x86)}\GnuWin32\bin"

# set PATH environment variable for current session
$env:Path += ";${dir}"

# set PATH environment variable for future sessions
$path = [Environment]::GetEnvironmentVariable('PATH', 'Machine')
$path += ";{$dir}"
[Environment]::SetEnvironmentVariable('PATH', $path, 'Machine')

但是请注意,第二步(为将来的会话设置变量)只有在$path 中没有使用 Windows 环境变量 (%something%) 时才能正常工作,因为该方法将值保存为 REG_SZ注册表。如果 PATH 变量存储为 REG_EXPAND_SZ 值,Windows 只会扩展环境变量。

如果您在 $path 的某处确实有常规的 Windows 环境变量,您必须手动将值以正确的类型写入注册表。

$key = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
Set-ItemProperty -Path $key -Name 'Path' -Value $path -Type ExpandString

附录:

当然,只有当您想以编程方式执行此操作时,上述所有内容才适用。对于手动方法,您始终可以通过 GUI 编辑环境变量并重新启动 PowerShell。

【讨论】:

    猜你喜欢
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 2011-09-22
    • 2019-12-25
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多