错误 - 使用批处理文件运行php文件

时间:2014-11-20 03:26:34

标签: php batch-file cmd

我正在使用Windows机器。 我想运行一个在W-Drive(网络驱动器)上的php文件,我的bat文件在桌面上。 我不明白为什么但不知何故它不执行我的PHP文件。 我的代码看起来像这样

@echo call to php script
@echo OFF
"D:\xampp\php\php" W:\Automation\Task\csv-file\delete-special-chars.php %*
timeout /t 60
pause

它也没有显示错误 参考了how to run php script from batch file

有什么建议我哪里出错?

由于

此外,当我运行php脚本将删除浏览器中的特殊字符时,我首先得到此错误 Notice: iconv(): Detected an incomplete multibyte character in input string in /opt/lampp/htdocs/Wdrive/Automation/Task/csv-file/delete-special-chars.php on line 17然后如果我再次刷新它会毫无错误地执行。

我的php scipt看起来像这样

<?php

foreach (glob("*.csv") as $file) 
{
    $contents = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    $csvRows = array_map('str_getcsv', $contents);

    $output_array = array();

    foreach($csvRows as $row) 
    {
        // echo $row[0] . "\n"; // Will output  data contained in the first column

        $input = $row[0]; // original text

        $output = iconv("utf-8", "ascii//TRANSLIT//IGNORE", $input);

        $output_array[] =  preg_replace("/^'|[^A-Za-z0-9\s-]|'$/", '', $output); // lets remove utf-8 special characters except blank spaces

        // echo $output; // Results in: Foo Bar Zacarias ASABAD Ferreira
    }

    file_put_contents($file, implode("\n", $output_array));
}
?>

请建议我哪里出错了

2 个答案:

答案 0 :(得分:2)

@echo call to php script to delete all the special characters
@echo OFF
W:

cd Automation\Task\csv-file
start "Start PHP" "D:\xampp\php\php.exe" -f delete-special-chars.php %*

答案 1 :(得分:1)

我认为您忘记了扩展程序.exe

所以改成它:

"D:\xampp\php\php.exe"

否则试试这个:

start "Start PHP" "D:\xampp\php\php.exe" -f delete-special-chars.php

编辑:

如果您想更改file php脚本中的某些内容,请执行batch文件location,这样您就必须cd转到php {1}}这样的脚本:

cd W:\Automation\Task\csv-file

因此,您的PHP脚本将从php脚本位置执行