我在此路径中有x.exe:C:\inetpub\wwwroot\webclient\db\nucleotide
我想执行此命令:blastdbcmd -db nr -entry all -outfmt "%g %T"
。
在Windows命令行中我执行:
cd C:\inetpub\wwwroot\webclient\db\nucleotide
blastdbcmd -db nr -entry all -outfmt "%g %T"
如何从php代码执行此操作。我知道exec($cmd)
或shell_exec($cmd)
会这样做但是,如何在$cmd
中输入上述两个语句?
EDIT1: 如何在文本文件中保存命令的输出? 我试着3声明:
chdir("C:\\inetpub\\wwwroot\\webclient\\db\\nucleotide");
$cmd = "blastdbcmd.exe -db nr -entry all -outfmt "%g %T" -out $text_files_path/NewSeq_$OldDatabaseFile$NewDatabaseFile.txt";
exec($cmd);
,,
exec("C:\inetpub\wwwroot\webclient\db\nucleotide\blastdbcmd.exe -db nr -entry all -outfmt "%g %T" -out $text_files_path/NewSeq_$OldDatabaseFile$NewDatabaseFile.txt");
,,
exec("cd C:\inetpub\wwwroot\webclient\db\nucleotide && blastdbcmd.exe -db nr -entry all -outfmt \"%g %T\" -out $text_files_path/NewSeq_$OldDatabaseFile$NewDatabaseFile.txt");
但是,没有生成NewSeq_ $ OldDatabaseFile $ NewDatabaseFile.txt。看来命令没有执行!
我该怎么办?
感谢。
答案 0 :(得分:0)
三个选项:
您可以在路径前添加.exe:
exec("C:\inetpub\wwwroot\webclient\db\nucleotide\blastdbcmd.exe -db nr -entry all -outfmt \"%g %T\"");
// don't forget to escape the quotes.
如果您的.exe出于某种原因确实要求您从该目录运行它,请在执行之前使用chdir()
进行更改。
chdir("C:\inetpub\wwwroot\webclient\db\nucleotide");
exec("blastdbcmd.exe -db nr -entry all -outfmt \"%g %T\"");
或者,您可以切换到目录并在一行中运行命令:
exec("cd C:\inetpub\wwwroot\webclient\db\nucleotide && blastdbcmd.exe -db nr -entry all -outfmt \"%g %T\"");