从php返回值到批处理文件
我有一个调用php脚本的批处理文件。php脚本返回一个我想在批处理脚本中使用的值。php脚本回显正确的返回值,但是我无法找到一种方法来捕获要在批处理文件中使用的值 我在for循环上尝试了许多变体,但都没有成功。我的批处理脚本如下所示:从php返回值到批处理文件,php,batch-file,batch-processing,Php,Batch File,Batch Processing,我有一个调用php脚本的批处理文件。php脚本返回一个我想在批处理脚本中使用的值。php脚本回显正确的返回值,但是我无法找到一种方法来捕获要在批处理文件中使用的值 我在for循环上尝试了许多变体,但都没有成功。我的批处理脚本如下所示: @echo off Setlocal "C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\hello.php endlocal 当然,这只是返回“Hello”。我如何在批处理文件中设
@echo off
Setlocal
"C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\hello.php
endlocal
当然,这只是返回“Hello”。我如何在批处理文件中设置一个变量(例如一个名为retVar的变量)来包含这个php调用返回的内容
谢谢,,
西蒙
使用for/f
执行命令(在in
子句中),并对命令输出中的每一行执行一个代码块(在do
子句中)。对于每一行,变量/可替换参数(示例代码中的%%a
)将保留该行。在这种情况下,由于php命令的输出只有一行,因此只执行一次,将php输出行存储到retVar
变量中
默认情况下,
for/f
将尝试标记它读取的行,使用空格和分隔符在字段中拆分。为了避免这种行为,使用了一个空的分隔符列表,因此所有行内容都将存储在%%a
您是否尝试过“php-f script.php | set bla=
?如果打印为标准输出使用。对于/f%a in('time/t')是否执行echo%a
打印或返回?echo 33
与退出(33)不同
。
@echo off
setlocal enableextensions
for /f "delims=" %%a in (
'"C:\Program Files (x86)\PHP\v5.3\php.exe" -f C:\inetpub\wwwroot\hello.php'
) do set "retVar=%%a"
echo %retVar%