Windows 10、64 位中的命令行 JSON 处理器 JQ 有问题

Problem with the command-line JSON processor JQ in Windows 10, 64 bit

我已经从“https://stedolan.github.io/jq/”下载了程序 jq-win64.exe,并将该程序安装在我计算机上的文件夹 C:\Program Files\jq\ 中。 我还将程序的 PATH 添加到 Windows 10 : 中系统变量字符串的末尾。 . . ;C:\程序Files\curl\;C:\程序Files\jq\

在一个终端中 window 在 Visual Studio 代码中 我是 运行 一个服务器。 在另一个终端 window 我正在尝试执行命令 curl -s localhost:3000 | jq

航站楼 window 1: C:\Users\SteinarV\PROFF_JAVASCRIPT\PROJECT\smartHouse

node server.js API running on port 3000

航站楼 window 2: C:\Users\SteinarV\PROFF_JAVASCRIPT\PROJECT\smartHouse>卷曲-s localhost:3000 | jq

'jq' 未被识别为内部或外部命令, 可运行的程序或批处理文件

...并且不明白为什么不识别jq。 有人可以帮忙吗?

I have downloaded the program jq-win64.exe from 'https://stedolan.github.io/jq/' and installed the program in a folder C:\Program Files\jq\ on my computer.

正如您所指出的,您有一个名为 jq-win64.exe 的文件,但您正在尝试执行命令 jq。您要么需要将文件重命名为 jq.exe,要么需要使用命令 jq-win64.

有关 Windows 如何在您输入命令时查找并执行路径中的程序的详细说明,请参阅 The Windows NT Command Shell: Command Search Sequence。具体来说:

...The shell now searches each directory specified by the PATH environment variable, in the order listed, for an executable file matching the command name. If a match is found, the external command (the executable file) executes...

...If the command name does not include a file extension, the shell adds the extensions listed in the PATHEXT environment variable, one by one, and searches the directory for that file name. Note that the shell tries all possible file extensions in a specific directory before moving on to search the next directory (if there is one)...


您在评论中指出相同的错误仍然存​​在即使文件名匹配。请注意,每个 运行ning 程序都有自己的一组环境变量,并且这些变量不会因全局更改而更新。进行全局更改后,您需要关闭并重新打开 cmd.exe windows。另见 Adding directory to path environment variable in windows。您可以使用 path 命令来验证特定终端会话是否继承了您定义的 PATH 变量,从而缩小您的问题范围。


您表示问题仍然仍然存在。您需要使用可用的工具进一步缩小范围:

尝试运行使用完整路径连接程序:

"C:\Program Files\jq\jq-win64.exe" --help

这将确认该程序存在于您认为存在的位置,并且可以从终端运行。

尝试 运行使用没有路径及其扩展名的程序:

jq-win64.exe --help

如果这有效但 运行 没有扩展名的程序无效,您可能已将 PATHEXT 设置为不包含“.EXE”的内容。

尝试在终端中明确设置路径以仅包含程序目录而不包含其他任何内容,然后 运行 它的完整扩展名:

set PATH=C:\Program Files\jq
jq-win64.exe --help

(请注意,在此测试之后,您需要关闭终端 window 并启动一个新终端以重置路径。)

如果可行,可能是您的路径不匹配。