как мне передать вывод из cli-php в bat-файл

#batch-file

#пакетный файл

Вопрос:

как я могу передать вывод (из cli-php) в аргумент bat-файла, пример:

 @echo off
php myScript.php > %%1
rmdir /S /Q %%1
 

Я знаю, что могу удалить файл, используя только php.

с уважением,

//t

Ответ №1:

Таким же образом вы записываете вывод любой команды в переменную:
FOR /F %%A IN ('command') DO ...

Вам необходимо установить соответствующие параметры FOR /F для анализа / сохранения значений, которые вы хотите. В этом случае вы, вероятно, захотите "DELIMS=" , чтобы путь содержал пробелы.

 @echo off
for /f "delims=" %%A in ('php myScript.php') do rmdir /s /q "%%~A"
 

Я полагаю, что путь может начинаться с точки с запятой, что приведет к игнорированию вывода FOR /F по умолчанию "EOL=;" . Путь не может начинаться с двоеточия, поэтому вы можете установить "EOL=:" просто для безопасности:

 @echo off
for /f "eol=: delims=" %%A in ('php myScript.php') do rmdir /s /q "%%~A"