【发布时间】:2018-04-10 19:49:56
【问题描述】:
我有一个批处理文件,它在运行时会将日期和时间附加到文件末尾。但是,当它通过任务计划程序运行时,它不会将日期/时间附加到文件的末尾。
有问题的批处理文件:
@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="E:\PowerEQ\Logs\website.log" /ini=nul ^
/command ^
"open ftp://<hiddeninfo>/" ^
"lcd E:\Website\" ^
"cd /public_html/powereq/processed/" ^
"get test.zip" ^
"exit"
cd\
cd Website
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set
dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=%YYYY%%MM%%DD%_%HH%%Min%%Sec%
rename "test.zip" "test_%stamp%.zip"
"exit" ^
任何想法为什么在使用任务计划程序运行时这不起作用?
【问题讨论】:
-
很难说,因为您没有解释它是如何在任务调度程序中设置的。它是否在对文件具有权限的帐户下运行?
-
E: 驱动器是本地驱动器还是映射的网络路径?计划任务设置是在用户登录时运行还是无论用户是否登录都运行?
-
无论用户是否登录,都设置为使用本地服务器管理员帐户运行。 E:驱动器是本地驱动器。我有一个类似的批处理文件(与这个没有日期组件的批处理文件相同),它可以很好地通过任务调度程序运行。
-
@BrianRudnicke,当您像这样设置任务计划程序时,执行批处理文件时,默认工作目录将变为 SYSTEM32 目录。当您使用
CD命令时,它正在使用 C: 驱动器。将您的CD命令更改为。CD /D E:\website
标签: batch-file taskscheduler windows-task-scheduler