Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 如何将环境变量的值写入文本文件?_Batch File_Variables - Fatal编程技术网

Batch file 如何将环境变量的值写入文本文件?

Batch file 如何将环境变量的值写入文本文件?,batch-file,variables,Batch File,Variables,我需要将分配给环境变量finalval的十进制值写入文本文件,如下所示: echo.%%finalval>>^C:\TempSetup\id.txt 问题是执行后,当我检查文件内容时,finalval的实际值没有写入文件,而是写入了%finalval% 在以前使用相同样式的echo命令的同一批处理文件时,我没有遇到任何问题 我在第一行以及我用来写入文件的循环中启用了延迟扩展 我做错了什么?有一种方法似乎很少使用,但当您确定您的echo字符串不是以可转义字符开头时,该方法效果良好。方

我需要将分配给环境变量
finalval
的十进制值写入文本文件,如下所示:

echo.%%finalval>>^C:\TempSetup\id.txt
问题是执行后,当我检查文件内容时,
finalval
的实际值没有写入文件,而是写入了
%finalval%

在以前使用相同样式的
echo
命令的同一批处理文件时,我没有遇到任何问题

我在第一行以及我用来写入文件的循环中启用了延迟扩展


我做错了什么?

有一种方法似乎很少使用,但当您确定您的
echo
字符串不是以可转义字符开头时,该方法效果良好。方法是使用标准转义字符转义(插入符号,
^
):

@对于%%A,在(0 1 2 3.0 4.1 5.2 10 21 32字符串0“字符串1”“0 1 2”)中执行@Echo(^%%A>>
我在上面的代码中使用了
CON
重定向到控制台设备,您可以在测试后将其更改为特定任务的文件

输出应如下所示:

0
1.
2.
3
4.1
5.2
10
21
32
String0
字符串1
0 1 2
根据jeb的评论,我想澄清一下,这个想法可以更简单地通过以下方式表达:

@Echo(^%%finalval>>“C:\TempSetup\id.txt”

其中,
%%finalval
用于表示(应替换为)包含“decimal”值的报告变量。

如果您以后不在脚本中展开变量,则不需要启用DelayedExpansion。如果您之前已经设置了“finalval”:

以下是您稍后的称呼:

echo.%finalval% >>C:\TempSetup\id.txt

注意:当您将输出重定向到“id.txt”时,单克拉>将创建该文件。双克拉>>将附加该文件。这意味着,如果您继续运行脚本,并且您希望“id.txt”中有一个“X”值,因为您使用的是双克拉,您的输出将反映“X”与您运行脚本的次数相同。

这是否回答了您的问题?此任务的正确行是:
>“C:\TempSetup\id.txt”echo(%finalval%
重定向首先放在命令行上,以便能够输出诸如
1
2
等值。有关详细说明,请参阅我在command
echo
之间圆括号中的回答,如果变量
final,则输出值可以在文件中写入空行val
根本没有定义,而是将回显状态写入文件。只有当环境变量
finalval
包含一个字符串时,才需要延迟环境变量扩展,该字符串可能包含对Windows命令处理器
cmd.exe
处理批处理文件有特殊意义的字符在这种情况下,确实有必要将其启用并与
echo(!finalval!>>“C:\TempSetup\id.txt”一起使用
。延迟扩展可以安全地附加重定向。@Mofi非常感谢您的帮助,非常感谢您的帮助。它可以正常工作,……但它也可以在没有插入符号的情况下正常工作,因为
%%~A
在重定向已被解析时会被扩展。我想您是想展示类似
echo Helllo^2>con
的功能(显示“你好2”)是的@jeb,但我想让答案尽可能的通用,因为OP没有提供任何细节,只提供了一个看起来“可能”是
do
输出的片段。我只是想OP会理解
%%~a
仅仅是他们
%%finalval
的一个表示,其余部分在技术上是irr与他们的具体问题相关。解释此解决方案
echo
es
,而不是
,可能是明智的。
echo.%finalval% >>C:\TempSetup\id.txt