Batch file 如何在日志文件中打印命令行本身以进行日志跟踪?
我有一个通过.bat文件调用的java代码。这批货很好用。有没有办法将我正在执行的命令行打印到标准输出(日志)文件中 例如,我的命令是Batch file 如何在日志文件中打印命令行本身以进行日志跟踪?,batch-file,Batch File,我有一个通过.bat文件调用的java代码。这批货很好用。有没有办法将我正在执行的命令行打印到标准输出(日志)文件中 例如,我的命令是 call dpp.bat -r %BASE_URL% views -af xyz.csv >> creation.log 2>&1 在我的bat文件中,我有多种不同类型的此类命令。在执行此单个批处理文件时,所有内容都会一个接一个地执行,所有日志都会写入该单个文件creation.log。用户看不到日志,哪个命令行执行了什么 是否有一种
call dpp.bat -r %BASE_URL% views -af xyz.csv >> creation.log 2>&1
在我的bat文件中,我有多种不同类型的此类命令。在执行此单个批处理文件时,所有内容都会一个接一个地执行,所有日志都会写入该单个文件creation.log。用户看不到日志,哪个命令行执行了什么
是否有一种简单的方法,比如添加一些行,将命令行也打印到日志文件中?如果我理解正确,您希望将命令回显和命令输出都写入日志文件 要实现这一点,您可以执行以下操作:
- 将要登录的代码放入子例程中,然后由调用该子例程
- 仅将
命令的输出发送到日志文件调用
- 将
放入批处理文件的主部分@echo off
- 将
放入子程序@echo打开
- 别忘了把它放在主要部分的末尾
@rem//Turn命令在主节中回显关闭:
@回音
@rem//仅将'call'的输出重定向到日志文件:
调用:SUB>>“creation.log”2>&1
@rem//终止主要部分:
@退出/B
:SUB
@rem//Turn命令在小节中回显:
@呼应
@rem/*将所有要登录的命令行放在此处;
@rem确保这些行前面不带“@”:*/
调用dpp-r%BASE\u URL%views-af xyz.csv
@rem//终止小节:
@退出/B
或者,您可以将每个命令放置到只迭代一次的
@rem//Turn命令回显:
@呼应
@rem//将所有要登录到“for”循环的命令行放置在一次迭代中:
@(对于(.)中的%%#请调用dpp-r%BASE_URL%views-af xyz.csv)>“creation.log”2>&1
@rem//终止脚本:
@退出/B
实际上它非常简单,只需将echo%*
放在命令行中就可以打印传递的参数。为什么要使用Call
?如果你移除它会发生什么?如果不包括@Echo Off
,会发生什么?因为调用会执行另一批“dpp”(在本例中),所以使用dpp.cmd
或dpp.bat
会更容易,因为您绝对没有告诉我们。我已从您的问题中删除了不相关的标记(基于您提供的信息),并修改了您的代码,以更清楚地表明您正在调用.bat
文件。