我想创建以今天的日期作为文件夹名称的文件夹。然后,我想将数据从远程计算机移动到新创建的文件夹。
我写了一个批处理脚本,看起来像
我的批处理脚本。
名称:运行.bat
::@ECHO off
SET CurrentDate= %date:~-4,4%_%date:~-10,2%_%date:~7,2%
SET CurrentDate=%CurrentDate: =%
"%SystemRoot%\System32\cmd.exe" /c mkdir "Z:\some_name_commercial\%CurrentDate%"
C:\Users\H213561\Documents\pscp.exe -l username -pw **** [email protected] /cdn-cgi/l/email-protection:/Distribution/somename_corp/* "Z:\some_name_commercial\%CurrentDate%"
该脚本工作正常,当我从命令行运行上述脚本时,它会执行我打算执行的操作。但我无法将 Windows 调度程序中的脚本安排为日常工作。
我尝试过什么!!!
我认为问题在于 mkdir 命令,我尝试给出完整路径
就像没有运气一样。
"%SystemRoot%\System32\cmd.exe" /c mkdir "Z:\some_name_commercial\%CurrentDate%"
P.S : Z:\ 是挂载的NAS(网络驱动器)
Update:
当我的目标位置不是网络驱动器时,我能够使其正常工作。
但是,如果它是网络驱动器,任务计划程序将不起作用。
计划任务可以根据您的设置在“不同会话”中运行。
For e.g., if you have "Run only when the user is logged on"
然后,您可以看到计划任务将在与用户相同的会话中运行。如果用户未登录,该任务将不会运行。该任务将查看用户的所有驱动器映射
如果设置为“无论用户是否登录都运行”,
然后,该进程在不同的会话中运行,即所谓的 -会话0 https://blogs.technet.microsoft.com/askperf/2007/04/27/application-compatibility-session-0-isolation/
在此模式下,任务无法看到用户的驱动器映射。
(1)方案1
一种方法是在任务中显式映射驱动器
eg.
net use Z: /delete
net use Z: <share name>
然后你的其余任务就可以与 Z 一起工作:
(2)方案2
始终使用完全限定路径,即\\server name\share name\folder name
在大多数情况下,您希望无论用户是否登录都运行任务。在这种情况下,您不应该检查以下内容:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)