Batch file 有没有一种方法可以在批处理文件中输出%variable%,而不表达其值?
是否有一种方法可以在批处理文件中输出(导出)一个%变量%,而不表达其值 例如,如果我想在output.bat文件中使用随机数,我可以: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(
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!标记了这个问题!你说得对。我据此编辑了我的答案。在我发布我的(不正确的)答案之前,你的评论是对的。