问题描述
我在文本文件中有以下数据,并且我希望值name
。
package: name='com.package.addres' versionCode='35' versionName='1.8.0 (RC)' compileSdkVersion='23' compileSdkVersionCodename='6.0-2438415'
解决方法
假设您的文本文件内容全部位于一行中,并且位于文件的第一行:
@Set /P "name=" 0< "mytextfile.txt"
@Set "name=%name:*name=%"
@Set "name=%name:~2%"
@Set "name=%name:'="&:"%"
@Echo %name% & Pause
只需根据需要替换行1
上文本文件的名称(mytextfile.txt
)。
如果您肯定name='value'
将始终列在第一位,则也可以使用for-loop:
@For /F "UseBackTokens=2Delims='" %%G In ("mytextfile.txt")Do @Set "name=%%G"
@Echo %name% & Pause
,
此解决方案从数据行提取所有变量:
@echo off
setlocal
rem Read the data line from the file
for /F "tokens=1*" %%a in (test.txt) do set "data=%%b"
rem Extract all variables
set "%data:' ='" & set "%"
rem For example:
echo name=%name%
echo versionName=%versionName%
echo compileSdkVersionCodename=%compileSdkVersionCodename%
输出示例:
name='com.package.addres'
versionName='1.8.0 (RC)'
compileSdkVersionCodename='6.0-2438415'
您可以在skip=#
命令中使用FOR
选项(后跟goto continue
)以读取另一行。
使用For
循环:
@for /f "tokens=2*" %%i in (in.txt) do @set "key=%%i"
@set "%key:'=%"
@echo %name%