No puedo usar FOR, ahí me jodieron bien.
Es totálmente necesario usar FOR para la tarea que pides, ¿Quien te ha dicho que no lo uses, o porque dices que no puedes usarlo?... si no puedes usarlo, no puedes hacer la tarea usando Batch, es así de simple.
He pensado en aislar las palabras entre los espacios
Para hacer un Split necesitas usar FOR, entonces no puedes separar las palabras
de ningún modo.
alguna idea para que mande las palabras al .txt de a una por linea?
Para eso tienes que hacer un ciclo sobre las palabras procesándolas una a una, es decir, se necesita usar FOR.
PD: No te codeo ninguna solución porque dices que no puedes usar FOR (aunque no hay otra manera de hacerlo), además en Google puedes encontrar miles de ejemplos.
Saludos!
Bueno al final he codeado un ejemplo para mostrarte, aunque lo repito de nuevo,
NO SE PUEDE HACER SIN USAR FOR.
Este código es una porquería (porque sin FOR no se puede hacer más que una porquería como esta), está limitado a procesar sólamente 255 palabras (es el límite de Batch) y además no puedes escribir caracteres conflictivos en la Frase, ya que sin el uso de FOR pues es lo que hay, no hay otras alternativas.
Sincéramente no te recomiendo para nada que lo hagas sin usar FOR, FOR existe para usarlo, no sé si es que eso de "no puedo usar FOR" es algún tipo de reto o lo has leido en algún tutorial o algo parecido... pero desde luego es algo ridículo que no tiene ningún sentido, ya que la forma más eficiente es usar FOR.
...Y debes acostumbrarte a usar FOR, ya que un búcle simplifica mucho las cosas y de lo contrario vas a tener que escribir y repetir miles de lineas de código, es decir, si no usas FOR vas a ser un guarro codeando en lugar de un coder eficiente, como en el siguiente código que te muestro ...el cual es una simple muestra de como hacer lo que pides sin usar FOR, pero realmente como ya he comentado no puedes hacerlo de manera decente y/o eficiente sin usar FOR, no busques alternativas que no existen, yo no me sentiria nada orgulloso de hacer este tipo de códigos cuando existen formas eficientes de hacerlo usando FOR.
Set /P "Phrase= Escribe la frase
>> "
Set /P "FindWord=Escribe la palabra
>> "
:WordCount
:: %1 - %9
:: %10 - %18
:: %19 - %27
:: %28 - %36
:: Repetir el mismo proceso hasta deslizar la posición de los argumentos hasta alcanzar el parámetro límite de Batch, el %255.
Echo Coincidencias:
| MORE
Type "%TEMP%\Words.tmp" | FIND /C /I "%FindWord%" | MORE