标题本来可以做得更好,但有时我的英语词汇量和我的 JSON 技能一样缺乏(尽管 jqplay.org 是一个有用的资源):(
任何人;我正在尝试提取该字段下的第一个用户名值"accounts"
。问题是,有多个条目(“someone”和“someoneelse”),我只需要列表中第一个键的值(“JQ_Newb”或“GOD”,具体取决于 JSON 的解析方式)。
JSON的内容如下:
{
"accounts": {
"someone": {
"username": "JQ_Newb",
"info": "stackoverflow"
},
"someoneelse": {
"username": "GOD",
"info": "heaven"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在摆弄to_entries[]
and select()
(在 [] 和 () 之间有和没有值),但我得到的是:
{
"key": "extra",
"value": "stackoverflow"
}
{
"key": "extra",
"value": "heaven"
}
Run Code Online (Sandbox Code Playgroud)
和:
"JQ_Newb"
"GOD"
Run Code Online (Sandbox Code Playgroud)
使用.accounts[].username
长话短说
.accounts[]|to_entries[0]|select(i_dont_know_what_i'm_doing)
Run Code Online (Sandbox Code Playgroud)
如果 Stackoverflow 上已经有解决方案,很抱歉我找不到它。我已经尽力自己解决这个问题了。
谢谢,
版权
我的情况如下:
我已经在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
文件夹位置下提取了一个注册表值.
问题是代码适用于其中有空格的路径,但如果我对其中没有空格的路径使用相同的代码,则输出错误.
我知道它与之相关,tokens
但我希望有一种方法可以使代码适用于这两种情况.
我目前的代码如下:
FOR /F "tokens=2*" %I in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Startup ') DO echo "%J"
Run Code Online (Sandbox Code Playgroud)
和输出:
"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
Run Code Online (Sandbox Code Playgroud)
在旁注:扩展%USERPROFILE%
对我来说没问题,我只是使用CALL
函数
现在,当将注册表值的路径更改为Startup
其中没有任何空格的内容时,前面提到的代码将失败.
希望有人能够在两种情况下使其工作.
最诚挚的问候,
copyitright