首页 > 解决方案 > 复制 findstr 结果后的行

问题描述

我有一个文件,内容如下:

<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>8.10</string>
<key>CFBundleURLTypes</key>

要使用 CFBundleShortVersionString 提取行,我可以使用:

(for /f "delims=," %a in ('type "Info.pList" ^|findstr "CFBundleShortVersionString"') do @echo %a) > "CFBundleShortVersionString.txt"

给出输出

<key>CFBundleShortVersionString</key>

但是我该如何提取下面的行呢?IE

<string>8.10</string>

我在 Windows 10 中使用命令提示符。

谢谢,克里斯。

标签: windowscmd

解决方案


如果您只需要这两行,我们就使用这个技巧

您可以将其粘贴到 CLI 中:

SET "_Found="
@for /f "delims=," %a in ('
    Type "Info.pList"
  ') do @(
  IF  NOT DEFINED _Found (
    ECHO=%a|find "CFBundleShortVersionString" && (
      SET "_Found=1"
    )
  )  ELSE (
    ECHO=%a
    SET "_Found="
  )
)>> "CFBundleShortVersionString.txt"

这将输出每场比赛和每场比赛后的第一行


推荐阅读