将Batch(.bat)文件的输出转换为PHP数组

时间:2014-01-15 16:55:14

标签: php batch-file command-line windows-console

我有这个批处理文件,它通过文件夹中包含的文件查找字符串。

@echo off
pushd "%1"
findstr /m /C:%2 *
popd

如果我从命令行执行该操作,它会打印包含搜索字符串的文件的名称。

从PHP开始,使用以下命令执行批处理文件:

system("cmd /c C:/path/myFile.bat C:/path toSearch", $returned);

问题是$returned元素是字符串而不是数组。 它的每个元素都被一个空白区域隔开。

我正在考虑将其爆炸,但由于某些文件还包含空格,因此无法实现。

有趣的是,在我打印结果字符串的页面的源代码中,每个元素实际上都是一行,如下所示:

element1
second element
third element

但是生成的HTML代码是这样的:

element1 second element third element

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决。

问题是system会自动打印执行文件的输出。 我为exec更改了它,现在在$returned变量中返回了一个数组。

exec("cmd /c C:/path/myFile.bat C:/path toSearch", $returned);

More info