【问题标题】: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 或其他工具。

有什么方法可以按要求得到输出吗? 谢谢

【问题讨论】:

    标签: cmd batch-file


    【解决方案1】:
    @echo off
        setlocal enableextensions disabledelayedexpansion
    
        (for /f "usebackq delims=" %%a in ("inputfile.txt") do (
            call echo(%%a
        )) > outputfile.txt
    

    要在读取的行内展开变量引用,您需要强制解析器处理变量的内容。您可以使用call 命令强制对行进行附加解析以扩展变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2014-02-01
      • 2018-05-13
      相关资源
      最近更新 更多