批处理 forfiles 错误,路径未找到

18 浏览
0 Comments

批处理 forfiles 错误,路径未找到

我对批处理文件还是个新手,但我正在寻找一个删除超过30天的.txt日志文件的脚本...(值得一提的是,我使用的是XP SP3操作系统...)

我试着按照这里的例子进行操作(包括从这里下载forfiles.exe),最终得到了这个脚本:

forfiles -p"D:\SQL Database Back Ups\Update_FmlaManagement_Log" -s -m *.txt -d-30 -c "cmd /c del @FILE"

但是我遇到了这个错误:

Error path not found (3rd argument) line 545

我查了很多谷歌,但似乎无法弄清楚这个错误在说什么。有人建议使用forfiles.exe以使@variables起作用,但我尝试了这个方法(以及完整的forfiles路径),但似乎什么都没有起作用...

至少有人能指导我正确的方向来理解这个错误信息吗?

0
0 Comments

Batch forfiles error path not found

在使用Batch中的forfiles命令时,可能会遇到"Batch forfiles error path not found"的错误。这个错误的出现原因是文件路径不存在或者无法找到。解决这个问题的方法是确保文件路径正确,并且在执行批处理文件时处于正确的工作目录。

在使用forfiles命令时,需要提供完整的文件路径和文件名。如果只提供文件名而不包括路径,那么批处理文件将无法找到文件,因为它在不同的工作目录中。

有时候,即使提供了正确的文件路径和文件名,仍然会出现"Batch forfiles error path not found"的错误。这可能是因为批处理文件没有在正确的工作目录中执行。为了解决这个问题,可以尝试切换到文件所在的目录,或者在批处理文件中使用完整的文件路径来执行操作。

另外,有时候使用反斜杠"\ "来表示路径,也会导致相同的错误。在这种情况下,可以尝试使用正斜杠"/"来代替反斜杠,或者使用双反斜杠"\"来表示路径。

总结起来,解决"Batch forfiles error path not found"错误的方法是确保提供了正确的文件路径和文件名,并且在执行批处理文件时处于正确的工作目录。如果仍然遇到这个错误,可以尝试使用不同的路径表示方式来解决。

0
0 Comments

批处理文件中出现(Batch forfiles error path not found)错误的原因可能是在路径之间缺少空格,解决方法是在-p和路径之间加上空格。此外,错误信息的文本不符合批处理命令的正常情况,因此可能是来自完全不同的源头。还有可能是批处理文件中存在着另一个执行完全不同操作的forfiles命令,或者是将一个测试命名为forfiles.bat。根据问题的描述,问题可能出在forfile.exe文件上,可以尝试从不同的网站下载一个新的forfile.exe文件来解决问题。感谢帮助!

0
0 Comments

问题的出现原因:在上述代码中,pushd行将目录设置为适当的目录,但是如果该目录不存在,则会出现“Batch forfiles error path not found”的错误。

解决方法:确保pushd行中设置的目录存在。如果目录不存在,可以手动创建该目录或者更改pushd行的路径。

以下是修改后的代码示例:

off
setlocal enabledelayedexpansion
pushd "D:\SQL Database Back Ups\Update_FmlaManagement_Log"  // 修改为正确的目录路径
if not exist "D:\SQL Database Back Ups\Update_FmlaManagement_Log" (
    mkdir "D:\SQL Database Back Ups\Update_FmlaManagement_Log"  // 如果目录不存在,则手动创建
)
set today=%date:~-10%
call :toEpoch %today%
set /a thirtyDaysAgo=%epoch% - 2592000
for /f "tokens=1,5*" %%I in ('dir /o:d *.txt ^| findstr "txt$"') do (
    call :toEpoch %%I
    if "%%K"=="" (set file=%%J) else (set file=%%J %%K)
    if /i %thirtyDaysAgo% GTR !epoch! del /q "!file!"
)
popd
goto :EOF
:toEpoch date
echo wscript.echo datediff("s", "01/01/1970 00:00:00", "%1")>epoch.vbs
for /f %%x in ('cscript /nologo epoch.vbs') do set epoch=%%x
del /q epoch.vbs
goto :EOF

通过以上修改,可以解决“Batch forfiles error path not found”的错误。

0