只有在完成一个脚本文件的执行后才能在批处理文件中顺序执行

时间:2014-04-12 07:43:40

标签: php batch-file

我有一个要求,我要执行多个php脚本,一个php脚本取决于以前脚本的结果。请注意,所有这些脚本都会更新MySQL数据库。 任何人都可以告诉我为此目的的工具或命令吗? 谢谢!

这是我的jobs.bat文件中的代码

path to php directory\php.exe path to php scritps\script 1.php path to php directory\php.exe path to php scritps\script 2.php

我只想知道命令2是否会等待"脚本1"直到完全执行并更新数据库或两个命令将并行执行?

1 个答案:

答案 0 :(得分:2)

您可以更具体地了解需要从一个PHP脚本传递到另一个PHP脚本的数据类型。

bash脚本可以正常执行php脚本:

php /path/to/script1.php
php /path/to/script2.php
php /path/to/script3.php

至于将数据从一个php脚本传递到另一个php脚本,您有几个选项。其中之一是打包传递到数组中的所有变量,将其序列化,然后将其输出到文件中。当下一个脚本启动时,您要做的第一件事是访问该文件,反序列化该数组,然后使用它在脚本中包含的数据。

第一个php脚本:

// code that does stuff
...

// this comes at the end of your script
// example of variables that you might want to send to the next script
$some_var = 4;
$some_string = 'It works for strings too.';
$some_array = array('red' => '#ff0000', 'green' => '#00ff00', 'blue' => '#0000ff');

// bundle the variables into an array
$bundled_data = array([0] => $var, [1] => $some_string, [2] => $some_array);

// serialize the array into a string
$serialized_array = serialize($bundled_data);

// then write to the file
$file = fopen('temp.txt', 'w');
$file.write($serialized_array);
$file.close();

第二个php脚本:

// this comes at the beginning of your script
// retrieve the saved data
$file_text = file_get_contents('/path/to/temp.txt');
$bundled_data = unserialize($file_text);

// access the data and use it in your script
$var = $bundled_data[0];
$some_string = $bundled_data[1];
$some_array = $bundled_data[2];

希望这个答案与您的情况相关。将来,请发布代码示例,并解释您尝试过的内容。