Buen día maestro, bueno para ampliar esto lo que necesito es corregir una ruta te explico
El comando para darle pausa a winamp que es el que necesito en las 2 partes del código
:Comprobar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 goto :Comprobar
:Esperar
tasklist /FI "IMAGENAME eq mpc-hc.exe" | findstr PID >nul
IF %ERRORLEVEL% LEQ 0 goto :Esperar
IF NOT %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul & goto :Comprobar
Clever es una aplicación de terceros para controlar winamp en sus funciones básicas usando CMD, por ejemplo: Play, pausa, stop, etc
Un ejemplo de uso según la ayuda de clever:
@ECHO off
cd\
c:
cd c:\clever
clever.exe pause
exit
Ósea que primero
1 Busca el archivo y lo ejecuta
2 Ejecuta el comanda clever pausa
Yo lo quise hacer funcionar así:
Primer intento:
(Use el pipe (|) por que lei que decía "Redirecciona la salida de un comando, a otro comando")
IF %ERRORLEVEL% LEQ 0 cd "%UserProfile%\Desktop\clever.exe" | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
Pero parece que eso significaba:
SI HAY ERROR:
Busque y ejecute en la raíz del escritorio "clever.exe" | ejecute "clever pausa" | después cierre el proceso "TxtTick.exe" (y) diríjase a la etiqueta :Esperar
A esto le aye el inconveniente que el ejecutable clever estaba disponible a quien sea y lo podían borrar, asi que cree una carpeta con el nombre "archivos importantes "y lo coloque allí:
Entonces tenía que usar un código que lo buscara y lo ejecutara no importando si estaba en la raíz o en una carpeta o subcarpeta, modificándolo así:
IF %ERRORLEVEL% LEQ 0 FOR /R %%_ in (*clever.exe) do ("%%_") | clever.exe pause >nul & goto :Esperar
SI HAY ERROR:
Busque en carpetas o subcarpetas donde está guardado el código y ejecute "clever.exe" | ejecute "clever pausa" | después cierre el proceso "TxtTick.exe" (y) diríjase a la etiqueta :Esperar
En tus recomendaciones de esta pregunta me dijiste:
1. Usa los operadores de agrupación para agrupar los comandos ().
2. Encierra todos los argumentos "" (sobretodo el de la ruta de directorio...).
3. Comprueba si el error se solucionó.
Pensé separo los comandos con paréntesis y los uno con pipes o con "y" (&), hice pruebas mas no me funcionaron, entonces que puedo hacer para que funcione?
Cita de: Dsalomon en 11 Octubre 2013, 18:22 PM
(Use el pipe (|) por que lei que decía "Redirecciona la salida de un comando, a otro comando")
IF %ERRORLEVEL% LEQ 0 cd "%UserProfile%\Desktop\clever.exe" | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
Tu lo has dicho, sirve para redireccionar la salida del comando a la entrada de otro comando, ¿Pero entiendes lo que esto significa?.
El programa clever segúramente no disponga de un input de entrada a la que puedas enviarle una salida,
tampoco tiene sentido redireccionar una salida al comando taskkill, el taskkill no tiene un input para recibir,
lo que quieres hacer es concatenar comandos, y para eso están los operadores "&" y "&&".
Comentaste que vas lento en Batch, pero esto no es ir lento, es "no dar ni un paso", no me da la impresión de que hayas aprendido lo básico,
en todos estos meses (e incluso años tal vez) desde que empezaste a formular preguntas sobre Batch has podido leer y aprender el funcionamiento de los operadores de Batch, y así no tendrias fallos novatos o confusiones como el de las pipes.
Cita de: Dsalomon en 11 Octubre 2013, 18:22 PM
IF %ERRORLEVEL% LEQ 0 cd "%UserProfile%\Desktop\clever.exe" | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
Pero parece que eso significaba:
SI HAY ERROR:
Busque y ejecute en la raíz del escritorio "clever.exe" | ejecute "clever pausa" | después cierre el proceso "TxtTick.exe" (y) diríjase a la etiqueta :Esperar
REM SI HAY ERROR:
IF %ERRORLEVEL% NEQ 0 (
REM ejecute en la raíz del escritorio "clever.exe" con el parámetro "pause"
Start /B "" "%UserProfile%\Desktop\clever.exe" pause
REM después cierre el proceso "TxtTick.exe"
Taskkill /F /IM TxtTick.exe 1>nul
REM diríjase a la etiqueta :Esperar
goto :Esperar
)
Como puedes ver no es tán dificil
DSalomon, si haces una agrupación multilinea como la que te acabo de mostrar ni siquiera tienes que preocuparte de usar los operadores "&" "&&" "||", eso debería resultarte aún más facil, así que el otro código conflictivo dejo que intentes corregirlo por ti mismo,
un saludo!
gracias... si habia pensado en unir multi lineas y eliminar el & pero eso de OR || no me recuerdo que este...
entendi que el pipe | XD sirve para continuar el resultado de un comando al siguiente... por eso lo añadi...
gracias seguire aprendiendo... y seguramente te prenguntare cuando arme algo nuevo con el mismo codigo... :xD