Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: что значит "%~dp0phpunit.phar" %*
Форумы портала PHP.SU » » Вопросы новичков » что значит "%~dp0phpunit.phar" %*

Страниц (1): [1]
 

1. p33t - 19 Сентября, 2016 - 20:20:43 - перейти к сообщению
Уважаемые специалисты, начиная тему PHPUnit, при установке, столкнулся с такой странной конструкцией: echo @php "%~dp0phpunit.phar" %* > phpunit.cmd.

Чтоб не вырывать из контекста, вот весь код:

C:\Users\username> cd C:\bin
C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
C:\bin> exit

Эта абракадабра запускается в командной строке.

Первую и третюю строку я понимаю, а вот вторую Не понял

Знаю что она создает "phpunit.cmd" в текущей директории.

Подскажите что это за констркуция, как оно называется и где накопать о ней больше инфы ???

Заранее спасибо. Радость
2. Sail - 20 Сентября, 2016 - 09:25:30 - перейти к сообщению
p33t, в данном случае %~dp0 раскрывается в имя диска и пусть до cmd-файла.
Подробнее можно посмотреть, например в выводе команды help for (из командной строки windows).
3. p33t - 20 Сентября, 2016 - 16:19:11 - перейти к сообщению
Понял.
Спасибо вам большое за ответ. Радость

Но, сама конструкция создает файл phpunit.cmd в текущей директории.

Немного инфы нашел в помощи командной строки "call /?"
На сколько понял, тут, передаются вараметры вида %* в какую то програмку на php.
И вроде как phpunit.cmd это имя создаваемого файла на выходе функции...

Ну не прав ли я ??? Однако
4. Sail - 20 Сентября, 2016 - 16:24:59 - перейти к сообщению
cd C:\bin - меняет текущую директорию
echo @php "%~dp0phpunit.phar" %* > phpunit.cmd - результат отработки php-скрипта из файла phpunit.phar поместить в файл phpunit.cmd
exit - выход (завершение работы cmd-файла)

%* - все параметры командной строки, с которыми был вызван cmd-файл, код которого Вы привели.
5. p33t - 20 Сентября, 2016 - 23:55:46 - перейти к сообщению
А почиму скрипт передается в конструкцию echo ?

И что значит @ перед php ???
Растерялся
6. Sail - 21 Сентября, 2016 - 09:21:14 - перейти к сообщению
p33t пишет:
А почиму скрипт передается в конструкцию echo ?

И что значит @ перед php ???
Растерялся

Действительно, в файл phpunit.cmd помещается не результат отработки phar-файла, а командная строка вида: (в зависимости от исходного каталога)
@php "c:\C:\Users\username\phpunit.phar" %*
И это файл уже выполняет скрипт посредством интерпретатора PHP
Символ @ подавляет вывод на экран команд. Равносильно команде echo off. Ну, или @echo off, чтобы и сама эта команда не выводилась при выполнении bat-файла (cmd-файла).

 

Powered by ExBB FM 1.0 RC1