1. Si te digo que te leas un tutorial básico es por esto precisamente.
El comando no funciona porque no estás escapando un caracter especial, Y entonces ahí termina el argumento que le pasas a la segunda instancia de la CMD.
^|4- digo que si hay alguna manera de que el batch detecte si un erchivo se esta ejecutando y si se esta ejecutando no hacer nada
2.
TasklistAunque depende de si el archivo es un ejecutable, O un archivo que se puede abrir en un ejecutable.
- Para lo primero:
Tasklist /FI "Imagename eq programa.exe"
| Find "programa.exe"
>Nul
- Para lo segundo,
No hay nada efectivo usando Batch.
Solamente comprobar el filtro "windowtitle" de todos los procesos en Tasklist, para buscar el nombre del archivo.
O usar wmic para filtrar el argumento con el que se abrió un programa (El archivo que abrió).
Ejemplos:
Tasklist /FI "Windowtitle eq Administrador*"
WMIC path win32_process get commandline /format:list | find /V "find.exe" | find "ARCHIVO"
Acabo de descubir que poniendo cmd /? salen las opciones antes buscaba start /?
Fíjate mejor, Los parámetros que estás usando son de la CMD, no del comando start, por eso las opciones te salen en la ayuda de la cmd, y no en la del start...
PD: Cuando es con "C".
Salu2.