如何使用 cmd 和日志文件在任务计划程序中调试此计划的 .bat 任务?

Posted

技术标签:

【中文标题】如何使用 cmd 和日志文件在任务计划程序中调试此计划的 .bat 任务?【英文标题】:How to debug this scheduled .bat task in task scheduler using cmd and log file? 【发布时间】:2020-04-25 11:42:29 【问题描述】:

我正在尝试将以下 .bat 文件作为计划任务运行,同时还在 .txt 文件中记录错误:

在“程序/脚本”框中,我只有 cmd。然后在添加参数框中我有:

/k ""T:\Some_folder\mybatchfile.bat" >>"T:\somelog.txt" 2>&1"

在我尝试添加日志功能并调用 cmd explicitly 之前,这本来工作得很好,如几篇文章中所见,但我真的很想添加这个功能。我现在使用/k,这样我可以在发生事情时观察cmd窗口,但计划用/c替换它,以便在完成后关闭。

我尝试了很多my quotation marks 所在位置的排列,但运气不佳。我还故意使用 >> vs > 来append the log,而不是覆盖它。

.bat文件的内容基本是:

"C:\RDirectory\R.exe" CMD BATCH          "T:\Some_folder1\Preworkforbatch.R"
copy T:\Some_folder2\some_data.csv       "C:\Users\ABC1\Another_folder"
copy T:\Some_folder3\some_more_data*.csv "C:\Users\ABC1\Another_folder"

我想知道是否部分原因是 T 是映射的网络文件夹?感谢您的帮助。

编辑:

这里是关于任务的更多信息:

【问题讨论】:

运行任务的用户可能无权访问网络位置。是因为网络还没有建立,还是权限问题,目前还不得而知,(因为你还没有提供所有的计划任务信息) 用户有权访问网络位置 ...还有,其他信息呢? 已添加额外的屏幕截图,如果需要添加其他内容,请具体告诉我 将打开一个 cmd 窗口,您将看不到任何进展。打开您的日志文件以查看进度。关闭并打开日志文件以查看更多进度。 【参考方案1】:
"T:\Some_folder\mybatchfile.bat" >> "T:\somelog.txt" 2>&1

将批处理文件的输出重定向到日志文件时,您不会在 cmd 窗口中看到那么多输出。你必须反复打开、关闭、打开日志文件才能看到你的进度。使用批处理中的 title 命令在 cmd 窗口中显示进度信息。

title This is %~F0.  The time is %time%.  The date is %date%.  SLEEP 3600 FOR :RECORDRADIO

【讨论】:

我看不到添加参数的全部内容 2>&1 没有使用双引号。 当我尝试只用光标打开 cmd 窗口但没有任何反应时【参考方案2】:

好的,这最终对我有用,通过编辑批处理文件本身,并在任务计划程序中运行批处理文件(不是明确的 cmd):

mybatchfile.bat:

@echo on
"C:\RDirectory\R.exe" CMD BATCH          "T:\Some_folder1\Preworkforbatch.R" >> "C:\Users\ABC1\Logfolder\mylog.txt" 2>&1
copy T:\Some_folder2\some_data.csv       "C:\Users\ABC1\Another_folder" >> "C:\Users\ABC1\Logfolder\mylog.txt" 2>&1
copy T:\Some_folder3\some_more_data*.csv "C:\Users\ABC1\Another_folder" >> "C:\Users\ABC1\Logfolder\mylog.txt" 2>&1

将日志文件写入网络导致错误。 写入本地计算机解决了这个问题。 不使用双引号 也是关键,而只是在文件/路径周围加上引号。此设置为每一行提供了一个输出,因此对于 2>71 显示的每一行,如果有错误或完成消息,我都会得到一个输出。

这是任务调度程序的样子:

【讨论】:

以上是关于如何使用 cmd 和日志文件在任务计划程序中调试此计划的 .bat 任务?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Windows 任务计划程序打开 cmd 文件时执行但不启动服务器

使用任务计划程序创建任务以使用命令运行 cmd.exe

使用批处理文件/CMD 切换窗口焦点

请问如何解决的?“windows2008 X64下,建立CMD程序的开机运行计划任务不能正常执行. 但直接双击执行”

如何使用任务计划程序启动 cmd.exe 来执行命令?

powershell中如何执行bat文件