【问题标题】:Get a certain string before the specified string and after the second specified string [BATCH]获取指定字符串之前和第二个指定字符串之后的某个字符串[BATCH]
【发布时间】:2022-11-23 00:05:47
【问题描述】:

我正在制作一个批处理脚本来获取页面上产品的实际库存, JSON 是:

... ,"src":"https://www.datocms-assets.com/34299/1615563408-h510-elite-white-black-fan-bracket-out.png?ar64=MTox&auto=format&fit=crop&h=375&w=375","width":375,"height":375,"alt":null,"title":null}}],"aliasImage":null,"price":179.99,"stock":0,"id":260,"shopify_variants_id":39412773781641,"shopify_parent_id":6596349198473,"isValid":true,"isLowStock":true,"isOutOfStock":true,"discounted_price":124.99,"isOnSale":true,"isComingSoon":false,"isNewItem":false,"showSaleTag":false,"isPromo":true,"showCountdownTimer":false,"countdownEndDate":null,"showPercentOff":true,"percentOff":30,"showInventoryCount":false,"showAmountOff":false,"amountOff":0,"isBestSeller":false} ...

我需要获得库存、价格和拆卸价格,如果有人能够帮助我做到这一点,我将不胜感激。 我准确地说它们是倍数:json 上的“discounted_price”和“price”,它包含所有 nzxt 产品

我之前考虑过获取字符串:“id”:260,但发现没有任何工作正常。 我不需要这个想法,但我需要:有用的东西!谢谢你^^

【问题讨论】:

  • 首先,这只是 JSON 中的一个 sn-p,而不是它的全部内容。此外,如果您告诉我们文件使用的行尾类型(CrLf、Lf、Cr),以及是否真的全部在一行上,这将有所帮助。如果我们有文件编码(ANSI、Unicode),并且当 PowerShell 内置 JSON 功能而批处理文件没有时,如果您告诉我们为什么需要批处理文件来解析 JSON,这也会有所帮助。此外,本网站不提供免费的代码编写服务,我们希望您编写自己的代码,我们会尽力帮助您解决问题或失败。
  • 嗨,我真的不擅长 powershell,我不知道它的任何命令,其次,编码是 ansi,当 h510 elite case 可以在网站 nzxt.com 上购买时,我需要警告这个脚本。

标签: json for-loop batch-file find


【解决方案1】:
  • 这不是代码编写服务。您应该编写自己的代码,我们会提供帮助。
  • 一个批处理文件是不是处理 JSON 数据的正确工具。
  • 我们需要一个实际的数据以便对其进行测试。

无论如何,这是一个小批处理代码可能帮助:

@echo off
setlocal

set json={"src":"https://www.datocms-assets.com/34299/1615563408-h510-elite-white-black-fan-bracket-out.png?ar64=MTox&auto=format&fit=crop&h=375&w=375","width":375,"height":375,"alt":null,"title":null}}],"aliasImage":null,"price":179.99,"stock":0,"id":260,"shopify_variants_id":39412773781641,"shopify_parent_id":6596349198473,"isValid":true,"isLowStock":true,"isOutOfStock":true,"discounted_price":124.99,"isOnSale":true,"isComingSoon":false,"isNewItem":false,"showSaleTag":false,"isPromo":true,"showCountdownTimer":false,"countdownEndDate":null,"showPercentOff":true,"percentOff":30,"showInventoryCount":false,"showAmountOff":false,"amountOff":0,"isBestSeller":false}

rem Remove from beginning up to "width"
set "json=%json:*width="width%"

rem Change quote-colon by equal-sign
set "json=%json:":==%"

rem Separate comma-delimited parts and assign them to individual variables
set %json:,=" & set %

echo stock=%stock%
echo discounted_price=%discounted_price%

此代码的输出是:

stock=0
discounted_price=124.99

请做不是发表评论表明这段代码确实如此不是使用您的实际数据!:(相反,删除 @echo off 行,运行程序,理解它是如何工作的并插入所需的修改,直到程序正确工作......

【讨论】:

  • 您好,理论上您的代码是正确的,但我只放入了 json 的一小部分,现在 json 非常大,我收到很多错误,例如:'h' 未被识别为内部或外部命令、可执行程序或命令文件。
猜你喜欢
  • 2019-08-19
  • 1970-01-01
  • 2018-08-21
  • 2018-06-27
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2013-02-07
  • 2010-12-28
相关资源
最近更新 更多