Batch file 如何重定向包含要输出到Windows命令行上变量的变量的命令

Batch file 如何重定向包含要输出到Windows命令行上变量的变量的命令,batch-file,Batch File,我想将运行带有参数的批处理脚本的输出分配给变量。请告诉我怎么做 例如: datemath.bat%Date\u Pattern%-2的输出应分配给一个变量 假设我的date\u模式是2013 05 03,那么我的变量将出现2013 05 01通常有两种方法将命令的输出存储到变量中。我假设只有一行输出需要捕获。我还假设输出在stdout上,而不是stderr上。该命令可以是对批处理文件的调用、对批处理文件内子例程的调用、内部命令、标准外部命令(可执行文件)或第三方可执行文件-将输出捕获到变量中的过

我想将运行带有参数的批处理脚本的输出分配给变量。请告诉我怎么做

例如:
datemath.bat%Date\u Pattern%-2
的输出应分配给一个变量


假设我的
date\u模式
2013 05 03
,那么我的变量将出现
2013 05 01

通常有两种方法将命令的输出存储到变量中。我假设只有一行输出需要捕获。我还假设输出在stdout上,而不是stderr上。该命令可以是对批处理文件的调用、对批处理文件内子例程的调用、内部命令、标准外部命令(可执行文件)或第三方可执行文件-将输出捕获到变量中的过程是相同的

1) 将输出重定向到临时文件,然后使用SET/p将值读入变量

call dateMath.bat %Date_Pattern% - 2 >output.tmp
<output.tmp set /p "result="
del output.tmp
如果要在批处理脚本中使用上述命令,则FOR变量percents需要加倍。您的脚本可能已关闭echo,因此不需要@

for /f "delims=" %%A in ('dateMath.bat %Date_Pattern% - 2') do set "result=%%A"

您可以采取完全不同的方法:修改批处理脚本,将结果直接存储在变量中。您应该阅读DosTips.com提供的以下优秀教程该网站经常提到DOS,但实际上它是一个专门处理Windows批处理脚本的网站。

Learn。
for /f "delims=" %%A in ('dateMath.bat %Date_Pattern% - 2') do set "result=%%A"