Batch file 有没有一种方法可以在批处理文件中输出%variable%,而不表达其值?

Batch file 有没有一种方法可以在批处理文件中输出%variable%,而不表达其值?,batch-file,Batch File,是否有一种方法可以在批处理文件中输出(导出)一个%变量%,而不表达其值 例如,如果我想在output.bat文件中使用随机数,我可以: >output.bat( set var1=%random% echo var1 pause )` 现在,如果我打开输出文件,您可能会认为每次打开时都会找到一个随机数,对吗?错误,因为当我输出变量时,它不会输出var本身,而是输出它的值。如何“解决”这个问题 我尝试了一种在CMD中工作的真正的arcaic方法,但显然不是在in anywhere.ba

是否有一种方法可以在批处理文件中输出(导出)一个%变量%,而不表达其值

例如,如果我想在output.bat文件中使用随机数,我可以:

>output.bat( 
set var1=%random% 
echo var1
pause
)`
现在,如果我打开输出文件,您可能会认为每次打开时都会找到一个随机数,对吗?错误,因为当我输出变量时,它不会输出var本身,而是输出它的值。如何“解决”这个问题

我尝试了一种在CMD中工作的真正的arcaic方法,但显然不是在in anywhere.bat中

这:


我会喜欢你们的帮助,伙计们,我正在尝试创建一个简单的脚本,这是唯一的一部分,我还没有管理。感谢您的关注。

不清楚您想要的
输出是什么样子。bat
应该是什么样子

这将创建一个名为
output.bat的文件,其中只包含
%random%

somebatfile.bat

>>output.bat (
set "var1=%%random%%"
echo %var1%
)
%random%
set "outtxt=set var1=%%random%%"
echo %outtxt%> output.bat
set "outtxt=echo %%var1%%"
echo %outtxt%>> output.bat
set var1=%random%
echo %var1%

output.bat

>>output.bat (
set "var1=%%random%%"
echo %var1%
)
%random%
set "outtxt=set var1=%%random%%"
echo %outtxt%> output.bat
set "outtxt=echo %%var1%%"
echo %outtxt%>> output.bat
set var1=%random%
echo %var1%
这将创建一个包含两行的
output.bat
文件,我想这可能就是您要查找的

somebatfile.bat

>>output.bat (
set "var1=%%random%%"
echo %var1%
)
%random%
set "outtxt=set var1=%%random%%"
echo %outtxt%> output.bat
set "outtxt=echo %%var1%%"
echo %outtxt%>> output.bat
set var1=%random%
echo %var1%

output.bat

>>output.bat (
set "var1=%%random%%"
echo %var1%
)
%random%
set "outtxt=set var1=%%random%%"
echo %outtxt%> output.bat
set "outtxt=echo %%var1%%"
echo %outtxt%>> output.bat
set var1=%random%
echo %var1%

所以您希望您的
output.bat
文件包含
set var1=%random%
字面意思,对吗?
set var1=%%random%%有什么问题吗?
成功了,谢谢。PS:你能解释一下为什么吗?在解析批处理文件时,命令解释器扫描
%
符号,以查找环境变量(如
%Variable%
)或脚本参数(
%1
%2
,…),并用相应的值替换它们;在此过程中,一个独立的
%%
序列简单地被一个文本
%%
替换(我所说的“独立”是指类似
some\u text%%more\u text
;类似
%Var1%%Var2%%
的字符串不是我所说的“独立”,因为它包含两个变量);这也是为什么您必须将批处理文件中变量(%%I in(*)do
)的
%
)的
%
-符号加倍的原因…您不能在批处理文件中使用
^
来转义
%
(我认为这只能直接在命令提示符下工作);您需要声明
%%
以获取文本
%%
;注意,OP用…@aschipfloops!标记了这个问题!你说得对。我据此编辑了我的答案。在我发布我的(不正确的)答案之前,你的评论是对的。