簡體   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