Amigos,
As vezes precisamos fazer automações em nossos clientes usando Script Batch CMD linha
de comando, como a linguagem do MS Script Batch é limitada podemos usar totalmente
as funções do PHP para auxiliar o Script e até fazer REST API com nossos sistemas
webs feitos em Scriptcase.
Exemplo:
Criando Script Batch que envia dados para o PHP e recebe o retorno como variável que
podemos usar ao longo do código Batch no Windows.
Criar uma pasta na raiz chamada C:\BAT
Entrar na pasta Scriptcase onde esta instalado o PHP:
C:\Program Files\NetMake\v9-php73\components\php
Copiar os arquivos:
php.ini, php.exe, php7.dll, php7embed.lib, php7phpdbg.dll para a pasta C:\BAT
Abrir o arquivo php.ini no C:\BAT selecionar e remover tudo e deixar ele assim
caso não for usar nenhuma extensão extra, caso for adicione ela removendo os ;
e colocando o nome da mesma e copie ela na pasta C:\BAT
[PHP]
extension_dir = "."
; extension=curl
; extension=fileinfo
; extension=gd2
Agora vamos criar um Script que só recebe informações vindo do PHP:
Criar um arquivo no Notepad++ com formatação ANSI:
teste_retorno.bat
@echo off
chcp 1252
for /F "delims=" %%r in ('C:\BAT\php.exe -f C:\BAT\rotina_retorno.php') do set retorno_php=%%r
echo O Retorno do PHP foi: %retorno_php%
Criar um arquivo no Notepad++ com formatação ANSI:
rotina_retorno.php
<?php
setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
$_Data = date("Y-m-d H:i:s");
echo $_Data;
?>
Agora vamos enviar a varíavel para o PHP e receber o retorno.
Criar um arquivo no Notepad++ com formatação ANSI:
teste_envio.bat
@echo off
chcp 1252
for /F "delims=" %%r in ('C:\BAT\php.exe -f C:\BAT\rotina_envio.php teste_variavel') do set retorno_php=%%r
echo O Retorno do PHP foi: %retorno_php%
Criar um arquivo no Notepad++ com formatação ANSI:
rotina_envio.php
<?php
setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
$_Variavel = $argv[1];
echo 'Variável Recebida no PHP= '.$_Variavel;
?>
Caso quiserem converter os arquivos .bat em .exe que podem distribuir como
utilitários livre de Royalties ilimitados tem este software:
Advanced BAT to EXE Converter é a melhor escolha para compilar seus arquivos em lote para . EXE
para distribuir comercialmente. Advanced BAT to EXE Converter criptografa seu código e cria um
Windows nativo real . Programa EXE. estes. O EXE não requer nenhum software
pré-instalado para funcionar e pode ser assinado digitalmente.