【发布时间】:2021-07-04 00:38:14
【问题描述】:
我有这个 Batchscript(简化,将所有 REM-cmets 和 echo-outputs 删除到一个 txt 文件):
SET DateTime=%date:~0% - %time:~0,8% Uhr
DEL D:\_script_autodel\_folderlist.txt
dir D:\Interfaces /s /b /a:d /o:n >> D:\_script_autodel\_folderlist.txt
for /F "tokens=*" %%A in (D:\_script_autodel\_folderlist.txt) do DeleteOldFiles.bat %%A
前3行执行有效,但第4行没有执行,或者至少作为计划任务运行时没有进入DeleteOldFiles.bat。
当我直接在 cmd 窗口中运行脚本时,DeleteOldFiles.bat 脚本被正确调用。
【问题讨论】:
-
我将 dir 输出更改为: for /F "tokens=*" %%A in (D:_script_autodel_folderlist.txt) do DeleteOldFiles.bat %%A & echo %%A >> D: _script_autodel\log.txt 尽管如此,它仍然不起作用......但我注意到一些有趣的事情 - 也许这可以帮助找到解决方案: - 我将第 4 行更改如下: for /F "tokens=*" %%A在 (D:_script_autodel_folderlist.txt) 中执行 DeleteOldFiles.bat %%A & echo %%A >> D:_script_autodel\log.txt - 当我将它作为计划任务运行时,它会将我打印出整个数组。当我直接运行它时,它应该一行一行地运行
-
您在没有路径的情况下调用
DeleteOldFiles.bat,然后假定它位于工作目录中,这将是c:\windows\system32,显然找不到它。成功:for /F "tokens=*" %%A in (D:\_script_autodel\_folderlist.txt) do call "D:\_script_autodel\DeleteOldFiles.bat" %%A
标签: shell loops batch-file scheduled-tasks