通过批处理脚本读取带有系统变量的文本文件?

问题描述:

我有一个文本文件param.txt它看起来像以下:通过批处理脚本读取带有系统变量的文本文件?

"SaveOnExit","true" 
"tmp_dir","%tmp%\app" 
"GUID","ab0809eda345febca" 

我想读通过批处理(Win7的)这个文件,并将其与“翻译”系统变量,如回声到一个新的文件

"SaveOnExit","true" 
"tmp_dir","C:\Users\user\AppData\Local\Temp\app" 
"GUID","ab0809eda345febca"code here 

我见过的样品用于分析像

@echo off 
FOR /F "tokens=1" %%G IN (param.txt) DO @echo %%G 

可惜没有转化系统变量%TEMP%。 输出与原始文件保持一致。 我用SETLOCAL EnableExtensions和EnableDelayedExpansion玩过,没有任何结果。 由于要求尽可能简单,使用VBS,Powershell或其他工具是不行的。

有没有办法根据要求获取输出? 感谢

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    (for /f "usebackq delims=" %%a in ("inputfile.txt") do (
     call echo(%%a 
    )) > outputfile.txt 

要扩大你需要强制解析器来处理变量的内容readed线内的变量引用。您可以使用call命令在该行上强制进行解析以获取展开的变量。