>  기사  >  백엔드 개발  >  PHP 명령줄 모드

PHP 명령줄 모드

伊谢尔伦
伊谢尔伦원래의
2016-11-22 10:12:231098검색

PHP는 4.3.0 버전부터 CLI라는 새로운 유형의 CLI SAPI(서버 애플리케이션 프로그래밍 인터페이스, 서버 애플리케이션 프로그래밍 포트) 지원을 제공합니다. 이는 명령줄 인터페이스(Command Line Interface), 즉 명령줄 인터페이스를 의미합니다. 이름에서 알 수 있듯이 CLI SAPI 모듈은 주로 PHP용 개발 셸 애플리케이션으로 사용됩니다. CLI SAPI와 다른 CLI SAPI 모듈 간에는 많은 차이점이 있으며, 이 장에서 이에 대해 자세히 설명합니다. CLI와 CGI는 많은 공통 동작을 공유하지만 서로 다른 SAPI라는 점을 언급할 가치가 있습니다.

CLI SAPI는 PHP 4.2.0과 함께 처음 출시되었지만 아직 실험 버전일 뿐이며 ./configure를 실행할 때 --enable-cli 매개변수를 추가해야 합니다. PHP 버전 4.3.0부터 CLI SAPI는 공식 모듈이 되었습니다. --enable-cli 매개변수는 기본적으로 on으로 설정되며, --disable-cli 매개변수로 차단할 수도 있습니다.

PHP 4.3.0부터 CLI/CGI 바이너리 실행 파일의 파일 이름, 위치 및 존재 여부는 PHP가 시스템에 설치되는 방식에 따라 달라집니다. 기본적으로 make를 실행하면 CGI와 CLI가 컴파일되어 PHP 소스 파일 디렉터리의 sapi/cgi/php 및 sapi/cli/php에 각각 배치됩니다. 두 파일의 이름은 모두 php.ini로 지정되어 있습니다. make install 중에 일어나는 일은 구성 라인에 따라 다릅니다. apxs와 같은 SAPI 모듈이 구성 중에 선택되거나 --disable-cgi 매개변수가 사용되는 경우 CGI가 배치되지 않은 한 CLI는 make install 프로세스 중에 {PREFIX}/bin/php에 복사됩니다. 그 위치. 따라서 예를 들어 구성 줄에 --with--apxs가 있으면 make install 중에 CLI가 {PREFIX}/bin/php에 복사됩니다. CGI 실행 파일 설치를 취소하려면 make install 후에 make install-cli를 실행하십시오. 또는 구성 라인에 --disable-cgi 매개변수를 추가할 수 있습니다.

참고:

--enable-cli 및 --enable-cgi는 모두 기본적으로 유효하므로 구성 줄에 --enable-cli를 추가하여 make install에서 CLI 실행 과정 중 {PREFIX}/bin/php에 복사됩니다.

PHP 4.2.0과 PHP 4.2.3 사이의 Windows 배포 패키지에서 CLI 파일 이름은 php-cli.exe이고, 같은 폴더에 있는 php.exe는 CGI입니다. PHP 4.3.0부터 Windows 배포 패키지의 CLI 실행 파일은 php.exe이며, cli라는 별도의 폴더, 즉 cli/php.exe에 위치합니다. PHP 5에서는 CLI가 홈 폴더에 php.exe로 존재하고, CGI 버전은 php-cgi.exe라고 합니다.

PHP 5부터 php-win.exe라는 새로운 파일이 패키지와 함께 출시되었습니다. CLI 버전과 동일하지만 php-win은 아무것도 출력하지 않으므로 콘솔을 제공하지 않습니다("DOS 창" 팝업이 표시되지 않음). 이 접근 방식은 php-gtk와 유사합니다. --enable-cli-win32 옵션을 사용하여 구성해야 합니다.

참고: 어떤 SAPI를 사용하고 있는지 어떻게 알 수 있나요?

명령줄에서 php -v를 실행하여 php가 CGI인지 CLI인지 확인하세요. php_sapi_name() 함수와 PHP_SAPI 상수를 참조하세요.

참고:

Unix 매뉴얼 페이지가 PHP 4.3.2에 추가되었습니다. 명령줄에 man php를 입력하여 볼 수 있습니다.

다음은 CLI SAPI와 다른 CLI SAPI 모듈 간의 중요한 차이점입니다.

CGI SAPI와 달리 출력에는 헤더 정보가 없습니다. CGI SAPI는 HTTP 헤더 정보를 억제하는 방법을 제공하지만 CLI SAPI에는 HTTP 헤더 정보 출력을 활성화하는 유사한 방법이 없습니다. CLI는 기본적으로 자동 모드에서 시작되지만 호환성을 보장하기 위해 -q 및 --no-header 매개변수는 이전 버전과의 호환성을 위해 계속 유지되므로 이전 CGI 스크립트를 사용할 수 있습니다. 실행 시 작업 디렉터리는 스크립트의 현재 디렉터리로 변경되지 않습니다(CGI 모드와 호환되도록 -C 및 --no-chdir 매개 변수를 사용할 수 있음). 오류가 발생하면 HTML 형식이 아닌 일반 텍스트 오류 메시지를 출력합니다.

CLI SAPI는 php.ini의 특정 설정을 강제로 무시합니다. 이러한 설정은 쉘 환경에서 의미가 없기 때문입니다.

php.ini 설정 옵션 무시

옵션 설정

CLI SAPI 기본값

비고

html_errors FALSE 의미 없는 HTML 태그는 오류 메시지를 복잡하게 만들므로 셸 아래에서 오류 메시지를 읽기가 매우 어렵습니다. 따라서 이 옵션의 기본값을 FALSE로 변경하세요.

implicit_flush TRUE 명령줄 모드에서는 print 및 echo의 모든 출력이 버퍼링 작업 없이 즉시 출력에 기록됩니다. 표준 출력을 지연하거나 제어하려는 경우에도 출력 버퍼링 설정을 사용할 수 있습니다.

max_execution_time 0(무한값) 쉘 환경에서 PHP를 사용할 수 있는 무한한 가능성을 고려하여 최대 실행 시간을 무한값으로 설정합니다. 웹용으로 개발된 애플리케이션은 실행하는 데 몇 초 밖에 걸리지 않는 반면, 셸 애플리케이션은 훨씬 더 오래 걸릴 수 있습니다.

register_argc_argv TRUE TRUE로 설정되므로 argc(애플리케이션에 전달된 인수 수) 및 argv(실제 인수가 포함된 배열)는 CLI SAPI에서 항상 액세스할 수 있습니다. PHP 4.3.0부터 CLI SAPI 사용 시 PHP 변수 $argc, $argv가 등록되어 해당 값으로 설정되어 있습니다. 이전 버전에서는 CGI 또는 모듈 버전에서 이 두 변수를 설정하려면 PHP 설정 옵션인register_globals를 on으로 설정해야 했습니다. 버전 및 Register_globals 설정 외에도 $_SERVER 또는 $HTTP_SERVER_VARS를 호출하여 언제든지 액세스할 수 있습니다. 예: $_SERVER['argv']

참고:

이 설정은 설정 파일 php.ini 또는 기타 지정된 파일의 다른 값으로 초기화될 수 없습니다. 이러한 기본값은 다른 모든 설정 파일이 구문 분석된 후에 변경되는 것으로 제한됩니다. 그러나 해당 값은 프로그램이 실행되는 동안 변경될 수 있습니다(이러한 설정은 실행 중인 프로세스에 의미가 없지만).

셸 환경에서 작업을 쉽게 하기 위해 다음과 같은 상수를 정의했습니다.

CLI 관련 상수

상수 name

설명

STDIN stdin을 가리키는 오픈 스트림입니다. 다음 방법으로 호출할 수 있습니다.

<?php
    $stdin = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
?>

stdin에서 한 줄을 읽으려면

<?php
$line = trim(fgets(STDIN)); // 从 STDIN 读取一行
fscanf(STDIN, "%d\n", $number); // 从 STDIN 读取数字
?>

STDOUT stdout을 가리키는 개방형 스트림을 사용하면 됩니다. . 다음과 같은 방법으로 호출할 수 있습니다:

<?php    
$stdout = fopen(&#39;php://stdout&#39;, &#39;w&#39;);
?>

STDERR stderr을 가리키는 개방형 스트림입니다. 다음과 같은 방법으로 호출할 수 있습니다.

<?php   
    $stderr = fopen(&#39;php://stderr&#39;, &#39;w&#39;);
?>

위 상수를 사용하면 stderr 등을 가리키는 스트림을 직접 만들 필요가 없습니다. 이 상수를 사용하여 간단히 대체할 수 있습니다. 스트림 포인팅:

php -r &#39;fwrite(STDERR, "stderr\n");&#39;

이 스트림을 직접 닫을 필요는 없습니다. PHP가 자동으로 닫을 것입니다.

CLI SAPI는 현재 디렉터리를 스크립트가 실행 중인 디렉터리로 변경하지 않습니다. 다음 예는 이 모듈과 CGI SAPI 모듈의 차이점을 보여줍니다.

<?php
    // 名为 test.php 的简单测试程序
    echo getcwd(), "\n";
?>

CGI 버전을 사용할 때 출력은

$ pwd
/tmp
$ php-cgi -f another_directory/test.php
/tmp/another_directory

PHP가 변경되는 것을 분명히 볼 수 있습니다. 현재 디렉터리 방금 실행한 스크립트가 있는 디렉터리로 변경합니다.

CLI SAPI 모드를 사용하면 다음을 얻을 수 있습니다.

$ pwd
/tmp
$ php -q another_directory/test.php
/tmp

PHP를 사용하여 쉘 도구를 작성할 때 매우 편리합니다.

참고:

명령줄에서 실행할 때 CGI SAPI에 -C 매개 변수를 추가하여 CLI SAPI 기능을 지원하도록 할 수 있습니다.

다음은 PHP 바이너리 파일(즉, php.exe 프로그램)에서 제공하는 명령줄 모드 옵션 매개변수입니다. 언제든지 -h 매개변수와 함께 PHP 명령을 실행하여 이러한 매개변수를 쿼리할 수 있습니다. .

Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a
  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value &#39;bar&#39;
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.
  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

CLI SAPI 모듈에는 PHP 코드를 실행하는 세 가지 방법이 있습니다.

PHP가 지정된 파일을 실행하도록 합니다.

php my_script.php
php -f my_script.php

위의 두 가지 방법 모두(-f 매개변수 유무에 관계없이) 주어진 my_script.php 파일을 실행할 수 있습니다. 실행할 파일을 선택할 수 있습니다. 지정된 PHP 스크립트는 .php 확장자를 가질 필요가 없습니다. 파일 이름과 확장자를 가질 수 있습니다.

명령줄에서 직접 PHP 코드를 실행하세요.

php -r &#39;print_r(get_defined_constants());&#39;

이 방법을 사용할 때 쉘 변수 대체 및 따옴표 사용에 주의하시기 바랍니다.

참고:

위의 예를 주의 깊게 읽어보세요. 코드를 실행할 때 시작 및 끝 마커가 없습니다! -r 매개변수를 사용하면 이러한 표시가 필요하지 않으며 구문 오류가 발생합니다.

표준 입력(stdin)을 통해 실행해야 하는 PHP 코드를 제공합니다. 위의 사용법은 매우 강력한 기능을 제공하므로 다음 예와 같이 PHP 코드를 동적으로 생성하고 명령줄을 통해 이러한 코드를 실행할 수 있습니다.

$ some_application | some_filter | php | sort -u >final_output.txt

위의 세 가지 코드 실행 방법 동시에 사용할 수 없습니다.

모든 셸 애플리케이션과 마찬가지로 PHP 바이너리(php.exe 파일)와 이 애플리케이션이 실행하는 PHP 스크립트는 일련의 매개변수를 받아들일 수 있습니다. PHP는 스크립트에 전달되는 매개변수 수에 제한이 없습니다(셸에는 명령줄의 문자 수에 제한이 있지만 일반적으로 이 제한을 초과하지 않습니다). 스크립트에 전달된 인수는 전역 변수 $argv에서 사용할 수 있습니다. 이 배열의 인덱스가 0인 멤버는 스크립트의 이름입니다(PHP 코드가 표준 입력에서 제공되고 -r 매개변수를 사용하여 명령줄에서 직접 실행되는 경우 이름은 "-"입니다). 또한 전역 변수 $argc는 $argv 배열의 멤버 변수 수를 저장합니다(스크립트 프로그램에 전달된 매개변수 수가 아님).

只要传送给脚本的参数不是以 - 符号开头,就无需过多的注意什么。向脚本传送以 - 开头的参数会导致错误,因为 PHP 会认为应该由它自身来处理这些参数。可以用参数列表分隔符 -- 来解决这个问题。在 PHP 解析完参数后,该符号后所有的参数将会被原样传送给脚本程序。

# 以下命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明:
$ php -r &#39;var_dump($argv);&#39; -h
Usage: php [options] [-f] <file> [args...]
[...]
# 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明:
$ php -r &#39;var_dump($argv);&#39; -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

除此之外,还有另一个方法将 PHP 用于外壳脚本。可以在写一个脚本,并在第一行以 #!/usr/bin/php 开头,在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码,然后为该文件设置正确的运行属性(例如:chmod +x test)。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。

#!/usr/bin/php
<?php
    var_dump($argv);
?>

假设改文件名为 test 并被放置在当前目录下,可以做如下操作:

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

正如所看到的,在向该脚本传送以 - 开头的参数时,脚本仍然能够正常运行。

PHP 4.3.3 以来有效的长选项:

命令行选项

选项名称

长名称

说明

-a    --interactive    交互式运行 PHP。如果编译 PHP 时加入了 Readline 扩展(Windows 下不可用),那将会得到一个很好的外壳,包括一个自动完成的功能(例如可以在键入变量名的时候,按下 TAB 键,PHP 会自动完成该变量名)以及命令历史记录,可以用上下键来访问。历史记录存在 ~/.php_history 文件中。

Note:

通过 auto_prepend_file 和 auto_append_file 包含的文件在此模式下会被解析,但有些限制,例如函数必须在被调用之前定义。

 -c    --php-ini    用该参数,可以指定一个放置 php.ini 文件的目录,或者直接指定一个自定义的 INI 文件(其文件名可以不是 php.ini),例如:

$ php -c /custom/directory/ my_script.php
$ php -c /custom/directory/custom-file.ini my_script.php

如果不指定此选项,PHP 将在默认位置搜索文件。

    -n    --no-php-ini    完全忽略 php.ini。此参数在 PHP 4.3.0 以后有效。    

-d    --define    用该参数可以自行设置任何可以在 php.ini 文件中设置的配置选项的值,其语法为:

-d configuration_directive[=value]

例子(因版面原因而折行显示):

# 取值部分被省略,将会把配置选项设为 "1"
$ php -d max_execution_time
        -r &#39;$foo = ini_get("max_execution_time"); var_dump($foo);&#39;
string(1) "1"
# 取值部分为空白,将会把配置选项设为 ""
php -d max_execution_time=
        -r &#39;$foo = ini_get("max_execution_time"); var_dump($foo);&#39;
string(0) ""
# 配置选项将被设置成为任何 &#39;=&#39; 字符之后的值
$  php -d max_execution_time=20
        -r &#39;$foo = ini_get("max_execution_time"); var_dump($foo);&#39;
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r &#39;$foo = ini_get("max_execution_time"); var_dump($foo);&#39;
string(15) "doesntmakesense"

-e    --profile-info    激活扩展信息模式,被用于调试/测试。    

-f    --file    解析并运行 -f 选项给定的文件名。该参数为可选参数,可以省略,仅指明需要运行的文件名即可。    

-h and -?    --help and --usage    使用该参数,可以得到完整的命令行参数的列表及这些参数作用的简单描述。    

-i    --info    该命令行参数会调用 phpinfo() 函数并显示出结果。如果 PHP 没有正常工作,建议执行 php -i 命令来查看在信息表格之前或者对应的地方是否有任何错误信息输出。请注意当使用 CGI 摸索时,输出的内容为 HTML 格式,因此输出的信息篇幅较大。    

-l    --syntax-check    该参数提供了对指定 PHP 代码进行语法检查的方便的方法。如果成功,则向标准输出写入 No syntax errors detected in 2334ac29606bf8a170583e4f7533b1f4 字符串,并且外壳返回值为 0。如果失败,则输出 Errors parsing 2334ac29606bf8a170583e4f7533b1f4 以及内部解析器错误信息到标准输出,同时外壳返回值将别设置为 255。该参数将无法检查致命错误(如未定义函数),如果也希望检测致命错误,请使用 -f 参数。

Note:

该参数不能和 -r 一同使用。

 -m    --modules    使用该参数,PHP 将打印出内置以及已加载的 PHP 及 Zend 模块:

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype
[Zend Modules]

-r    --run    使用该参数可以在命令行内运行单行 PHP 代码。无需加上 PHP 的起始和结束标识符(eaae9fd1bc1dded8026482face6dba9c),否则将会导致语法解析错误。

Note:

使用这种形式的 PHP 时,应注意避免和外壳环境进行的命令行参数替换相冲突。

显示语法解析错误的范例

$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected &#39;=&#39;

这里的问题在于即使使用了双引号 ",sh/bash 仍然实行了参数替换。由于 $foo 没有被定义,被替换后它所在的位置变成了空字符,因此在运行时,实际被 PHP 读取的代码为:

$ php -r " = get_defined_constants();"

正确的方法是使用单引号 '。在用单引号引用的字符串中,变量不会被 sh/bash 还原成其原值。

$ php -r &#39;$foo = get_defined_constants(); var_dump($foo);&#39;
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

如果使用的外壳不是 sh/bash,可能会碰到更多问题。请将碰到的 Bug 向 » http://bugs.php.net/ 报告。注意,当试图将 shell 变量用到代码中或者使用反斜线时仍然很容易碰到问题。

Note:

-r 在 CLI SAPI 中有效,在 CGI SAPI 中无效。

Note:

此选项只用于非常基本的用途。因此一些配置指令(例如 auto_prepend_file 和 auto_append_file)在此模式下被忽略。

-B    --process-begin    在处理 stdin 之前先执行 PHP 代码。PHP 5 新加。    

-R    --process-code    对每个输入行都执行 PHP 代码。PHP 5 新加。此模式下有两个特殊变量:$argn 和 $argi。$argn 包含 PHP 当前处理的行内容,而 $argi 则包含该行号。    

-F    --process-file    对每个输入行都执行 PHP 文件。PHP 5 新加。    

-E    --process-end    在处理完输入后执行的 PHP 代码。PHP 5 新加。使用 -B ,-R 和 -E 选项来计算一个项目总行数的例子。

$ find my_proj | php -B &#39;$l=0;&#39; -R &#39;$l += count(@file($argn));&#39; -E &#39;echo "Total Lines: $l\n";&#39;Total Lines: 37328

 -s    --syntax-highlight and --syntax-highlight    显示有语法高亮色彩的源代码。该参数使用内建机制来解析文件并为其生成一个 HTML 高亮版本并将结果写到标准输出。请注意该过程所做的只是生成了一个 ffbe95d20f3893062224282accb13e8f [...] 1cd55414ff5abdfea5dd958e7e547fdd 的 HTML 标记的块,并不包含任何的 HTML 头。

Note:

该选项不能和 -r 参数同时使用。

 -v    --version    将 PHP,PHP SAPI 和 Zend 的版本信息写入标准输出。例如:

$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP GroupZend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

   -w    --strip    显示除去了注释和多余空白的源代码。

Note:

该选项不能和 -r 参数同时使用。

    -z    --zend-extension    加载 Zend 扩展库。如果仅给定一个文件名,PHP 将试图从当前系统扩展库的默认路径(在 Linux 系统下,该路径通常由 /etc/ld.so.conf 指定)加载该扩展库。如果用一个绝对路径指定文件名,则不会使用系统的扩展库默认路径。如果用相对路径指定的文件名,则 PHP 仅试图在当前目录的相对目录加载扩展库。    

 PHP 的命令行模式能使得 PHP 脚本能完全独立于 web 服务器单独运行。如果使用 Unix 系统,需要在 PHP 脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用哪个程序去运行该脚本。在 Windows 平台下可以将 php.exe 和 .php 文件的双击属性相关联,也可以编写一个批处理文件来用 PHP 执行脚本。为 Unix 系统增加的第一行代码不会影响该脚本在 Windows 下的运行,因此也可以用该方法编写跨平台的脚本程序。以下是一个简单的 PHP 命令行程序的范例。

Example #1 试图以命令行方式运行的 PHP 脚本(script.php)

#!/usr/bin/php
<?php
if ($argc != 2 || in_array($argv[1], array(&#39;--help&#39;, &#39;-help&#39;, &#39;-h&#39;, &#39;-?&#39;))) {
?>
This is a command line PHP script with one option.
  Usage:
  <?php echo $argv[0]; ?> <option>
  <option> can be some word you would like
  to print out. With the --help, -help, -h,
  or -? options, you can get this help.
<?php
} else {
    echo $argv[1];
}
?>

在以上脚本中,用第一行特殊的代码来指明该文件应该由 PHP 来执行。在这里使用 CLI 的版本,因此不会有 HTTP 头信息输出。在用 PHP 编写命令行应用程序时,可以使用两个参数:$argc 和 $argv。前面一个的值是比参数个数大 1 的整数(运行的脚本本身的名称也被当作一个参数)。第二个是包含有参数的数组,其第一个元素为脚本的名称,下标为数字 0($argv[0])。

以上程序中检查了参数的个数是大于 1 个还是小于 1 个。此外如果参数是 --help ,-help ,-h 或 -? 时,打印出帮助信息,并同时动态输出脚本的名称。如果还收到了其它参数,将其显示出来。

如果希望在 Unix 下运行以上脚本,需要使其属性为可执行文件,然后简单的运行 script.php echothis 或 script.php -h。在 Windows 下,可以为此编写一个批处理文件:

Example #2 运行 PHP 命令行脚本的批处理文件(script.bat)

@C:\php\php.exe script.php %1 %2 %3 %

假设将上述程序命名为 script.php,且 CLI 版的 php.exe 文件放置在 c:\php\cli\php.exe,该批处理文件会帮助将附加的参数传给脚本程序:script.bat echothis 或 script.bat -h。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.