我无法使用通过任务计划程序运行的.cmd文件获取最后创建的目录。手动运行相同的cmd文件时,可以得到预期的路径。
下面是使用的代码段
FOR /F %%i IN ('dir /b /ad-h /t:c /od') DO (SET LastCreatedFolder=%%i)
此处LastCreatedFolder
在手动运行脚本时获得价值,而在通过任务计划程序运行时返回空值。
答案 0 :(得分:1)
从Task Scheduler运行时,工作目录%CD%
不一定是用常规方式打开或运行脚本时的当前目录。为了确保它是正确的,您应该在一开始就根据需要进行设置。
以下示例使用保存正在运行的批处理文件%~dp0
的目录:
@Echo Off
CD /D "%~dp0"
For /F "Delims=" %%A In ('Dir /B/AD-H/OD/T:C 2^>Nul') Do Set "Newest=%%A"
...
修改
如果从一开始就更改目录,那么会干扰脚本中的其他命令,您也可以在For
循环中添加目录:
@Echo Off
For /F "Delims=" %%A In ('Dir /B/AD-H/OD/T:C "%~dp0" 2^>Nul') Do Set "Newest=%%A"