0

我正在用 C# 开发一个 Web 服务器,但是我在使用 BATCH 文件时遇到了一些问题,这些文件可以让 Apache 和 MySQL 运行。使 NGINX 工作的 BATCH 我可以做,但是 PHP 没有启动,给出了语法错误,也需要帮助。

NGINX-START.BAT(NGINX 启动,但是 PHP 没有启动和语法错误)

开始目录:C:\Users\NETO\Documents\Visual Studio 2010\Projects\MHServer\MHServer\bin\Debug\Server\Files\NGINX

目标目录:C:\Users\NETO\Documents\Visual Studio 2010\Projects\MHServer\MHServer\bin\Debug\Php\php-cgi.exe

错误信息:文件名、目录名或卷标的语法不正确。该系统找不到指定的路径。

@ECHO OFF
cd \%CD%\
cd ..
cd ..
cd ..
cd Nginx
start nginx

set PATH=\Php;%PATH%
\Php\php-cgi.exe -b 127.0.0.1:9000
:exit

Apache-start.bat(Apache 不启动且语法错误)

错误信息:文件名、目录名或卷标的语法不正确。该系统找不到指定的路径。

@ECHO OFF
cd \%CD%\
cd ..
cd ..
cd ..
\Apache\bin\Apache.exe

MySQL-start.bat (MySQL 不启动和语法错误)

错误信息:文件名、目录名或卷标的语法不正确。该系统找不到指定的路径。

@ECHO OFF
cd \%CD%\
cd ..
cd ..
cd ..
\MySql\bin\mysqld.exe --defaults-file=\MySql\my.ini --standalone --console
:exit

文件夹结构(程序和文件的文件夹)

  • [ C:\MHServer\Apache] - Apache 路径
  • [ C:\MHServer\MySql] - MySQL 路径
  • [ C:\MHServer\Nginx] - NGINX 路径
  • [ C:\MHServer\Php] - PHP 路径

BAT 文件夹文件

  • [ C:\MHServer\Server\Files\Apache] - Apache BAT 文件
  • [ C:\MHServer\Server\Files\MySQL] - MySQL BAT 文件
  • [ C:\MHServer\Server\Files\NGINX] - NGINX BAT 文件

文件结构

我对BAT文件不是很好,所以我来找你帮忙!

4

1 回答 1

0

您只需要从相对目录名称之前删除反斜杠。

例如:

\Apache\bin\Apache.exe

应该

Apache\bin\Apache.exe

此外,如果您想将 PHP 目录添加到 NGINX-START.BAT 中的 PATH 环境变量中,您将需要使用完整路径,而不是相对路径。像这样的东西会起作用:

set PATH=%CD%\Php;%PATH%

另外,你想用 做cd \%CD%\什么?这本身就会产生错误,因此也将其从所有脚本中删除。

所以你的第一个批处理文件应该是这样的:

@ECHO OFF
cd ..
cd ..
cd ..
cd Nginx
start nginx
cd ..
set PATH=%CD%\Php;%PATH%
Php\php-cgi.exe -b 127.0.0.1:9000
:exit
于 2013-08-01T04:37:52.783 回答