我有一些备份批处理文件脚本,之前在 xp 中运行,现在我已将其迁移到 windoes server 2008 R2,在使用任务管理器安排时,它不会在前面运行。我费了好大劲才让它在任务管理器的预定时间运行,它确实在运行,但没有显示进程(在后台运行)。我还知道显示所有正在运行的任务的选项。我在谷歌上搜索过,但到目前为止还没有找到。有人知道如何让任务管理器在 windows server 2008 R2 中的桌面上执行 .bat 文件(打开 cmd 提示符)吗?我安排它以相同的桌面用户身份运行!
谢谢你!
答案1
仅当您使用仅在用户登录时运行选项。以下是任务计划程序帮助文件的摘录:
您可以指定任务应运行,即使触发任务时计划运行任务的帐户未登录。为此,请选中标有无论用户是否登录都运行。如果选中此单选按钮,任务将不会以交互方式运行。要使任务以交互方式运行,请选择仅在用户登录时运行单选按钮。
我进行了一些尝试,psexec -i
但没有成功,很抱歉。
您可以使用 查找正在运行的计划任务列表schtasks.exe
,例如:
schtasks /query | find "Running"
如果您想要更花哨一点,您还可以为每个正在运行的任务提取命令行。以下是批处理文件示例:
@echo off
for /f "delims=," %%i in ('schtasks /query /fo csv ^| find "Running"') do (
for /f "delims=, tokens=9" %%j in ('schtasks /query /fo csv /v /tn %%i ^| find /v "Next Run Time"') do (
echo %%~i %%j
)
)
答案2
回应您上面的评论,您可以做三件事来验证您的脚本是否正确运行。
- 您可以检查以确保计划任务已成功。
- 您可以在批处理文件末尾创建一行,将命令写入文件以显示该命令已完成
echo Script finished %date% %time% >> c:\batch\backupScript.log
。 - 您可以手动运行它。