Cmd 通过批处理脚本读取带有系统变量的文本文件?
我有一个文本文件param.txt,如下所示:Cmd 通过批处理脚本读取带有系统变量的文本文件?,cmd,batch-file,Cmd,Batch File,我有一个文本文件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 我看到过
"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或其他工具
有没有办法按要求获得输出?
谢谢
要在读取行内展开变量引用,需要强制解析器处理变量的内容。您可以使用call
命令强制对行进行常规解析,以扩展变量
@echo off
setlocal enableextensions disabledelayedexpansion
(for /f "usebackq delims=" %%a in ("inputfile.txt") do (
call echo(%%a
)) > outputfile.txt