0

我正在尝试使用 exec() 中的 forfiles 递归地仅删除目录中的 sql 文件。

这就是我所拥有的:

$dir = date('D jS, M Y \a\t H-i a') ;

exec('forfiles /p "E:\Database Dump\\'.$dir.'\" /m *.sql /c "cmd /c del @file"') ;

但是,当我在命令提示符下运行我的 PHP 脚本时,它说“@file”不是参数/有效选项。

我知道它一定与路径名中的空格有关(我认为!),我尝试在不带引号的情况下运行它,用 / 和 ^ 转义空格,但没有任何乐趣。

我怎样才能做到这一点?


这是一个回声:

forfiles /p "E:\Database Dump\Fri 9th, Nov 2012 at 10-36 am\" /m *.sql /c "cmd /c echo @file"
4

1 回答 1

0

一个更简单的方法就是

del dir\*.sql /f /q

或通过子目录递归使用/s开关。

forfiles根本不需要。

于 2012-11-09T10:43:58.350 回答