如何使用 cmd 从文件(文本)打印特定行(包括变量)

How to print a specific line (variable included) from a file (text) using cmd

我真的很困惑。我正在制作一个可以显示我想要的特定行的批处理文件。例如有文件 hi.txt

文件内容 -

ro.build.id=KOT49H
ro.build.display.id=XXX_ROM_v1
ro.build.version.incremental=eng.mudingyu.1408084583
ro.custom.build.version=XOLO_8x-1000_0815.v009
ro.internal.version=J608_XOLO_N1A_V0.8.7_S08015
ro.internal.version.rgk=J608_XOLO_N1A_V0.8.7_S08015
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4
ro.build.date=Fri Aug 15 14:39:45 CST 2014
ro.build.date.utc=1408084785

在这里你可以看到文件内容。现在说我想在执行批处理时在屏幕上打印 ONLY 这条信息

"4.4.4" from this line "ro.build.version.release=4.4.4"

我设法提取了第二行的代码

ro.build.display.id=XXX_ROM_v1

当我执行批处理时,我看到了这个

XXX_ROM_V1

我使用的代码

set "build.prop="
for /F "skip=3 delims=" %%i in (WORKING_FOLDER\system\build.prop) do if not 
defined build.prop set "build.prop=%%i"
echo.
echo "%build.prop%"
echo.
echo Enter the name you want to choose
set /p name=
echo Backing up old build.prop...
md C:\Kitchen\temp
copy C:\Kitchen\WORKING_FOLDER\system\build.prop C:\Kitchen\temp
cd C:\Kitchen\temp
cd C:\Kitchen\WORKING_FOLDER\system
build.prop.new (
for /f "tokens=1* delims==" %%A in (build.prop) do (
   if "%%A" == "ro.build.display.id" (
     echo ro.build.display.id=%name%
   ) else (
     echo %%A=%%B
   )
 )
)
move /y build.prop.new build.prop >nul
build.prop.new (
  for /f "tokens=1* delims==" %%A in (build.prop) do (
    if "%%A" == "ro.build.id" (
     echo ro.build.id=%name%
   ) else (
     echo %%A=%%B
   )
 )
)
move /y C:\Kitchen\temp\build.prop.new 
C:\Kitchen\WORKING_FOLDER\system\build.prop >nul
echo Changed value of ro.build.display.id to " %name% "
echo.
set "build.prop="
for /F "skip=3 delims=" %%i in (WORKING_FOLDER\system\build.prop) do if not 
defined build.prop set "build.prop=%%i"
echo In build.prop now the current name of ROM is
echo.
echo Current ROM Name = %name%

正如您在第一行中看到的那样,我使用行命令功能打印名称,还从用户那里获取输入以更改名称,因此打印文件名变得容易,但在其他一些文件中,行 "ro.build.display.id" 并不总是在 4 号。 所以我的问题是为了在屏幕上打印我希望打印的特定术语 而无需 提示用户输入新文件名只需打印该特定信息

例如我想要的输出

The Android version is "4.4.4"

EG 假设我只想从上面的文件中打印“4.4.4” 我该怎么做? 使用 findstr 或任何东西请帮助真的很感激。

哎呀 - 对于一个非常简单的问题,需要阅读很多内容。

for /f "tokens=2 delims==" %%i in ('find "ro.build.version.release" hi.txt') do set release=%%i
echo The Android version is "%release%"

找到正确的行并将其标记为 = 作为分隔符。