通过批处理脚本读取带有系统变量的文本文件?
Posted
技术标签:
【中文标题】通过批处理脚本读取带有系统变量的文本文件?【英文标题】:Reading text files with system variables by batch script? 【发布时间】:2014-12-05 05:56:59 【问题描述】:我有一个文本文件 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 或其他工具。
有什么方法可以按要求得到输出吗? 谢谢
【问题讨论】:
【参考方案1】:@echo off
setlocal enableextensions disabledelayedexpansion
(for /f "usebackq delims=" %%a in ("inputfile.txt") do (
call echo(%%a
)) > outputfile.txt
要在读取的行内展开变量引用,您需要强制解析器处理变量的内容。您可以使用call
命令强制对行进行附加解析以扩展变量。
【讨论】:
以上是关于通过批处理脚本读取带有系统变量的文本文件?的主要内容,如果未能解决你的问题,请参考以下文章