El problema esta en que el Quick Batch File Compiler reemplaza los %* por %cmdln% en el bat compilado, por eso no funciona correctamente el bat al compilarlo y ejecutarlo.
Una solución es así:
Una solución es así:
Código (dos) [Seleccionar]
@echo off
set asterisco=*
echo.
echo.
echo.
echo.
echo.
call:tpwrtr AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
call:sleep 2
echo.
echo.
call:tpwrtr BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
call:sleep 2
echo.
echo.
call:tpwrtr CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
call:sleep 2
echo.
echo.
call:tpwrtr DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
call:sleep 2
pause>nul
goto:eof
:tpwrtr
call set palabra=%%%asterisco%
if not defined palabra (goto:eof)
set palabra=%palabra: =_%
call:length %palabra%
set /a contt=0
:loopt
call :tpwrtr1 %%palabra:~%contt%,1%%
set /a contt +=1
if %contt% leq %tam% (goto:loopt)
goto:eof
:tpwrtr1
set char=%1
if [%char%]==[_] (set char= )
<nul (set /p msg=%char%)
ping -n 1 127.0.0.0 -w 1>nul 2>&1
goto:eof
:length
call set argl=%%%asterisco%
if not defined argl (goto :eof)
set wordl=%argl%
set /a contl=0
:loopl
if not defined wordl (goto endl)
set wordl=%wordl:~1%
set /a contl +=1
goto loopl
:endl
set tam=%contl%
goto :eof
:sleep
if "%1"=="" (goto :eof)
set /a limit=0
set /a limit=%1
if %limit% LEQ 0 (goto :eof)
set /a cont=0
:time
set mirror1=%time:~-4,1%
:increment
set mirror2=%time:~-4,1%
if not %mirror2%==%mirror1% (goto count)
goto increment
:count
set /a cont +=1
if "%cont%"=="%limit%" (goto :eof)
goto time
goto :eof