File 批处理脚本无法在计划时访问远程驱动器
我有一个简单的批处理脚本,可以从映射到本地计算机上的Sharepoint驱动器本地复制文件。这在手动运行时运行良好,但在使用任务调度器运行时,脚本似乎根本无法访问驱动器。即使是简单的DIR打印输出也会失败。还值得注意的是,设置为在scheduler中运行脚本的用户对所涉及的所有内容都拥有完全的权限,并且与手动运行脚本所使用的帐户相同 计划任务的两个设置: 设置为无论用户是否登录都运行 以最高权限运行 你知道我怎样才能让它在调度程序中工作吗 编辑: 脚本和任务运行历史的屏幕截图 编辑2 callCopyFiles.batFile 批处理脚本无法在计划时访问远程驱动器,file,batch-file,scheduled-tasks,File,Batch File,Scheduled Tasks,我有一个简单的批处理脚本,可以从映射到本地计算机上的Sharepoint驱动器本地复制文件。这在手动运行时运行良好,但在使用任务调度器运行时,脚本似乎根本无法访问驱动器。即使是简单的DIR打印输出也会失败。还值得注意的是,设置为在scheduler中运行脚本的用户对所涉及的所有内容都拥有完全的权限,并且与手动运行脚本所使用的帐户相同 计划任务的两个设置: 设置为无论用户是否登录都运行 以最高权限运行 你知道我怎样才能让它在调度程序中工作吗 编辑: 脚本和任务运行历史的屏幕截图 编辑2 call
del "C:\apache\htdocs\IESite\Reports\*.*?"
FOR /f "delims=" %%L in (directorylist.txt) do (
echo %%L >> log.txt
CALL copyfiles.bat "%%L"
)
copyfiles.bat
FOR /F "delims=" %%I IN ('DIR %1 /s /b /O:-D') DO (
COPY "%%I" "C:\apache\htdocs\IESite\Reports"
goto :end
)
:ender
我怀疑callCopyFiles.bat中的这一行:
CALL copyfiles.bat "%%L"
失败,因为当批处理文件作为计划任务运行时,当前目录不同
尝试更改此行以列出完整路径…类似于:
CALL C:\YourFolderHere\copyfiles.bat "%%L"
编辑
根据这些评论,我认为您可能需要在copyfiles.bat文件中映射Z:drive
编辑2
映射驱动器时不要指定凭据
只需将NET USE Z:\\YourServer\ShareName添加到copyfiles.bat文件。您确定计划的批处理文件实际上正在运行并失败,而不是根本不运行吗?您是否尝试将一些日志记录语句添加到批处理中?你能给我们看一下批处理的内容吗?只是添加了结果和脚本的屏幕截图。我尝试添加日志记录,但发现copyfiles脚本中的循环没有循环,因为它无法访问驱动器以获取要循环的文件列表。我将您的代码从图像中添加到问题中,作为文本。下次,请这样做……这会让人们更容易帮助你谢谢,我会记住的!我输入了完整路径,但在看到它仍然没有运行后,我在copyfiles.bat中添加了一些日志语句。一个在回路前,一个在回路内。只有第一个日志被打印出来,告诉我正在调用文件,但循环根本没有被迭代。请尝试在copyfiles.bat中的循环前面放置一个echo%1。这说明了什么?正确的文件路径正在按预期打印。它的输出与我手动运行时的输出相同。%1的值是多少?它包含空格吗?如果只运行DIR%1/s/b/O:-D命令会怎么样?它显示什么?其中一个值是Z:\equipLayout\SPTL\ATL Reports UEMS II*ATL_REPORT*。它们确实包含空格。当我打印该目录时,当脚本被调度时,没有打印任何内容,但是当手动运行时,它将像它应该打印的那样打印内容。