如何使用 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%"
找到正确的行并将其标记为 =
作为分隔符。
我真的很困惑。我正在制作一个可以显示我想要的特定行的批处理文件。例如有文件 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%"
找到正确的行并将其标记为 =
作为分隔符。