Уважаемые специалисты, начиная тему 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" в текущей директории.
Подскажите что это за констркуция, как оно называется и где накопать о ней больше инфы ???
Заранее спасибо.
1. p33t - 19 Сентября, 2016 - 20:20:43 - перейти к сообщению
2. Sail - 20 Сентября, 2016 - 09:25:30 - перейти к сообщению
p33t, в данном случае %~dp0 раскрывается в имя диска и пусть до cmd-файла.
Подробнее можно посмотреть, например в выводе команды help for (из командной строки windows).
Подробнее можно посмотреть, например в выводе команды help for (из командной строки windows).
3. p33t - 20 Сентября, 2016 - 16:19:11 - перейти к сообщению
Понял.
Спасибо вам большое за ответ.
Но, сама конструкция создает файл phpunit.cmd в текущей директории.
Немного инфы нашел в помощи командной строки "call /?"
На сколько понял, тут, передаются вараметры вида %* в какую то програмку на php.
И вроде как phpunit.cmd это имя создаваемого файла на выходе функции...
Ну не прав ли я ???
Спасибо вам большое за ответ.
Но, сама конструкция создает файл 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-файл, код которого Вы привели.
echo @php "%~dp0phpunit.phar" %* > phpunit.cmd - результат отработки php-скрипта из файла phpunit.phar поместить в файл phpunit.cmd
exit - выход (завершение работы cmd-файла)
%* - все параметры командной строки, с которыми был вызван cmd-файл, код которого Вы привели.
5. p33t - 20 Сентября, 2016 - 23:55:46 - перейти к сообщению
А почиму скрипт передается в конструкцию echo ?
И что значит @ перед php ???
И что значит @ перед php ???
6. Sail - 21 Сентября, 2016 - 09:21:14 - перейти к сообщению
p33t пишет:
А почиму скрипт передается в конструкцию echo ?
И что значит @ перед php ???
И что значит @ перед php ???
Действительно, в файл phpunit.cmd помещается не результат отработки phar-файла, а командная строка вида: (в зависимости от исходного каталога)
@php "c:\C:\Users\username\phpunit.phar" %*
И это файл уже выполняет скрипт посредством интерпретатора PHP
Символ @ подавляет вывод на экран команд. Равносильно команде echo off. Ну, или @echo off, чтобы и сама эта команда не выводилась при выполнении bat-файла (cmd-файла).