繁体   English   中英

带有参数的PHP Windows Bat文件

[英]PHP Windows Bat file with arguments

我们目前必须将大约200名学生导入我们的活动目录。 我们有一个BAT文件,用于在服务器上创建用户和文件夹。

我编写了一个脚本,它扫描我们的MSSQL数据库中的新学生,将它们保存到一个数组中,然后使用system()调用cmd.exe并运行BAT文件来创建学生。

BAT文件位于我的Y驱动器(位于另一台服务器上)。 我们目前还使用DFS路径,因此我也可以通过这种方式访问​​bat文件。

值得注意的是:1)BAT文件的两条路径都有空格2)我还需要将参数传递给BAT文件

目前,这是我在PHP中的system()参数的状态:

$bat = escapeshellcmd("cmd /c Y:\SharedRes\Path To Createstudent\createstudent.bat {$stuArray['forename']} {$stuArray['surname']} {$stuArray['username']} {$stuArray['year']} {$stuArray['sf']}");
system($bat);

并使用DFS路径:

$bat = escapeshellcmd("cmd /c '\\organisation.local\Path To Createstudent\createstudent.bat {$stuArray['forename']} {$stuArray['surname']} {$stuArray['username']} {$stuArray['year']} {$stuArray['sf']}'");
system($bat);

每次我尝试运行它,我收到以下错误:

The filename, directory name, or volume label syntax is incorrect

有任何想法如何让PHP实际运行BAT文件? 我现在很难过。

非常感谢

菲尔

PS我通过命令行运行PHP脚本:

php.exe -f "C:\import.php"

如果批处理文件位于带空格的路径中,则需要引用该参数:

cmd /c "Y:\SharedRes\Path To Createstudent\createstudent.cmd" ...

此外,如果参数包含空格,您也需要引用它们。 cmd无法识别单引号,它必须是双引号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM