PHP exec() 可以执行多个命令,这些命令不是相互独立的。
PHP exec() 可以执行多个命令,这些命令不是相互独立的。
我想在Windows CMD控制台中运行两个命令。
在Linux中我会这样做
touch thisfile ; ls -lstrh
在Windows上怎么做呢?
文档中的一句引用:
- 来源:Microsoft,Windows XP Professional产品文档,命令提示符概述
- 还有:Windows CMD命令A-Z索引
使用多个命令和条件处理符号
您可以使用条件处理符号从单个命令行或脚本运行多个命令。当您使用条件处理符号运行多个命令时,条件处理符号左侧的命令执行结果会影响条件处理符号右侧的命令的执行。
例如,您可能只想在前一个命令失败时运行一个命令。或者,您可能只想在前一个命令成功时运行一个命令。
您可以使用以下表中列出的特殊字符来传递多条命令。
& [...]
command1 & command2
用于在一个命令行上分隔多个命令。Cmd.exe运行第一个命令,然后运行第二个命令。
&& [...]
command1 && command2
仅在符号前面的命令成功时运行后面的命令。Cmd.exe运行第一个命令,仅当第一个命令成功完成时才运行第二个命令。
|| [...]
command1 || command2
仅在符号前面的命令失败时运行后面的命令。Cmd.exe运行第一个命令,仅在第一个命令未成功完成(接收到大于零的错误代码)时才运行第二个命令。
( ) [...]
(command1 & command2)
用于分组或嵌套多个命令。
; 或 ,
command1 parameter1;parameter2
用于分隔命令参数。
自2000年以来,所有微软操作系统均适用,至今仍适用:
dir & echo foo
如果您想要第二个命令仅在第一个命令成功退出后才执行:
dir && echo foo
单个和号(&)语法在一行上执行多个命令,可追溯到Windows XP、Windows 2000和早期的一些NT版本。根据这里的一位评论者,至少是4.0版本。
这方面还有很多其他要点,您可以在此页面下滑查看。
以下是历史数据,供有兴趣的读者学习参考。
在此之前,在Microsoft命令解释器添加此特性之前,&&语法仅是shell替代程序4DOS的一个功能。
在Windows 95、98和ME中,您需要使用管道符号代替:
dir | echo foo
在MS-DOS 5.0及更高版本中,通过一些早期的Windows和NT版本的命令解释器,未记录的命令分隔符是20号字符(Ctrl+T),我将在此处表示为^T。
dir ^T echo foo