Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmd 通过批处理脚本读取带有系统变量的文本文件?_Cmd_Batch File - Fatal编程技术网

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

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 我看到过

我有一个文本文件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或其他工具

有没有办法按要求获得输出? 谢谢

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

@echo off
    setlocal enableextensions disabledelayedexpansion

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