【发布时间】:2014-10-06 20:14:59
【问题描述】:
我在批处理文件中有以下代码:
for /F "tokens=1,2" %%a in (%CD%\clients.txt) do (
start "My Task" /d "%CD%" /b php -f "%CD%\task.php" "%%a" "/%%b"
)
如果我从命令提示符手动运行批处理文件,它工作正常。但是,如果我将它作为计划任务运行,它会失败并显示上次运行结果 (0x2)。请注意,如果我从要运行的进程中的变量的代码和硬编码值中删除循环,则任务运行良好。
我还注意到,任何类型的简单文件操作,例如 echo test > log.txt 在计划任务执行批处理文件时似乎都不会运行,而是手动运行。我尝试将计划任务设置为“以最高权限运行”,但没有解决。我还将计划任务操作的“开始于”设置设置为 PHP 和文本文件所在的目录,这也不起作用。这里的想法用完了,有什么想法吗?
【问题讨论】:
-
如果非要我猜的话,
%CD%并不是你想的那样(它指的是当前目录,不一定是批处理脚本所在的目录中)。 -
谢谢!这让我走上了正确的轨道,我想通了。解决方案发布在答案中。
标签: batch-file