我有一个文本文件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或其他工具是不可取的。
有没有办法按要求获得输出? 感谢
答案 0 :(得分:1)
@echo off
setlocal enableextensions disabledelayedexpansion
(for /f "usebackq delims=" %%a in ("inputfile.txt") do (
call echo(%%a
)) > outputfile.txt
要扩展readed行内的变量引用,需要强制解析器处理变量的内容。您可以使用call
命令在该行上强制执行aditional解析以扩展变量。