我正在尝试使用任务计划程序运行批处理文件。 批处理文件正在利用SecureFX通过cmd行在服务器之间传输文件。问题是该命令打开一个cmd窗口并显示有关文件传输的信息。我认为由于打开的cmd窗口,任务计划程序将无法在“运行用户是否已登录”模式下正确运行此程序。
问题是我需要它在“无论用户是否登录”模式下运行。 我尝试将vbs脚本与以下内容配合使用:
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "my.bat", , , "runas", 0
这本身就可以解决问题,.bat不运行cmd窗口,但是通过任务计划程序运行时,我得到0x41301的结果,这显然意味着任务已经在运行,但是任务没有在先运行。
my.bat的内容:
@echo off
for /f "tokens=1-4 delims=/ " %% in ('date /T') do set MyDate=%%a%%b%%c
for /f "tokens=1-4 delims=: " %%a in ("%TIME%") do set MyTime=%%a%%b%%c
set LOGFILE=D:\logfilelocation\sfxcl_log_%MyDate%_%MyTime%.txt
sfxcl /NOPROMPT /LOG "%LOGFILE%" D:\path_to_files_for_transfer\rt_*.zip sftp://user:password@hostname//destinationFolder:/
任务计划程序设置:
用户:系统
以最高特权运行-开
运行是否登录用户-打开
每天触发-每天09:00
操作,在“程序/脚本”字段中:
D:\ location_bat_file \ my.bat
“添加参数”和“开始于”字段为空。
我要使用的批处理文件和vbs文件的位置在本地。
有人可以帮忙吗?