forcile with exec()和路径中的空格

时间:2012-11-09 10:34:07

标签: php for-loop batch-file cmd exec

我正在尝试使用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"

1 个答案:

答案 0 :(得分:0)

更简单的方法就是

del dir\*.sql /f /q

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

根本不需要forfiles