我有一个文本文件,其中的值不同。
define Domain "http://xyz.co"
define Remote "https:/www.test.co"
define OUTFILE "Folder name"
...
我想读取文件并搜索特殊标记,例如Domain oder OUTFILE ,然后将双引号中的值设置为变量。双引号内的值可以包含空格。
for /F "eol=; tokens=*" %%z in ("filename.txt") do (
set value=%%z
ECHO %%z | FINDSTR /C:"Domain" >nul & IF NOT ERRORLEVEL 1 (GOTO ITERATE)
)
:ITERATE
for /f tokens^=2^ delims^=^" %%p in ("%value%") do set Domain=%%p
echo %Domain%
到目前为止,该方法仅适用于一个值。
是否可以只解析一次文件? 有没有更好的方法来获取双引号内的内容?
谢谢!
答案 0 :(得分:1)
:: Q:\Test\2018\11\01\SO_53101679.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
::clear env vars
For %%A in (Domain OUTFILE) do set "%%A="
for /F "eol=; tokens=1,2*" %%A in ('
findstr /i "^define.Domain ^define.OUTFILE" filename.txt
') do Set %%B=%%C
For %%A in (Domain OUTFILE) do if defined %%A Echo %%A=!%%~A!
根据上述片段对输出进行采样:
> Q:\Test\2018\11\01\SO_53101679.cmd
Domain=http://xyz.co
OUTFILE=Folder name