无法使用任务计划程序在cmd文件中获取最后创建的目录

时间:2018-07-24 09:08:18

标签: batch-file cmd scheduled-tasks jobs

我无法使用通过任务计划程序运行的.cmd文件获取最后创建的目录。手动运行相同的cmd文件时,可以得到预期的路径。

下面是使用的代码段

FOR /F %%i IN ('dir /b /ad-h /t:c /od') DO (SET LastCreatedFolder=%%i)

此处LastCreatedFolder在手动运行脚本时获得价值,而在通过任务计划程序运行时返回空值。

1 个答案:

答案 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"