我的Windows Server中有一个Fetch.exe
,在命令提示符下运行Fetch.exe
会在控制台中返回一些文本输出。
我想将Fetch.exe
包裹在exec
PhP中,并生成result.txt
:
exec("Fetch/Fetch.exe > C:/inetpub/testaddbbacom/test/result.txt");
测试显示确实已生成result.txt
,但它是空的。
然后,我在同一个文件夹中创建了一个简单的try.bat
:
同样,会生成一个空的result.txt
。
相比之下,exec("echo 123 > C:/inetpub/testaddbbacom/test/result.txt")
工作正常。
有谁知道什么是错的?
更新1:以下是文件夹Fetch
的权限,用户拥有所有权限:
答案 0 :(得分:0)
如果您的路径字符串使用双引号,则必须使用单引号来转义反斜杠。你可以重写exec调用:exec('C:\ inetpu \ testaddbbacom \ Fetch \ Fetch.exe> C:/inetpub/testaddbbacom/test/result.txt')或exec('C:/ inetpu / testaddbbacom / Fetch /Fetch.exe> C:/inetpub/testaddbbacom/test/result.txt') - @jlgsoftware